/**
 *
 */
import Util;
import ROAUtil;
import Credential;
type @region = string
type @endpoint = string
type @protocol = string
type @nickname = string
type @userAgent = string
type @credential = Credential

model RuntimeOptions {
  autoretry?: boolean(description='whether to try again', name='autoretry'),
  ignoreSSL?: boolean(description='ignore SSL validation', name='ignoreSSL'),
  maxAttempts?: number(description='maximum number of retries', name='maxAttempts'),
  backoffPolicy?: string(description='backoff policy', name='backoffPolicy'),
  backoffPeriod?: number(description='backoff period', name='backoffPeriod'),
  readTimeout?: number(description='read timeout', name='readTimeout'),
  connectTimeout?: number(description='connect timeout', name='connectTimeout'),
  httpProxy?: string(description='http proxy url', name='httpProxy'),
  httpsProxy?: string(description='https Proxy url', name='httpsProxy'),
  noProxy?: string(description='agent blacklist', name='noProxy'),
  maxIdleConns?: number(description='maximum number of connections', name='maxIdleConns'),
  localAddr?: string(description='local addr', name='localAddr'),
  socks5Proxy?: string(description='SOCKS5 proxy', name='socks5Proxy'),
  socks5NetWork?: string(description='SOCKS5 netWork', name='socks5NetWork'),
}

model Config {
  endpoint?: string,
  region?: string,
  protocol?: string,
  type?: string,
  securityToken?: string,
  accessKeyId?: string,
  accessKeySecret?: string,
  nickname?: string,
  userAgent?: string,
}


init(config: Config){
  if (Util.isUnset(config)) {
    throw {
      name = "ParameterMissing",
      message = "'config' can not be unset"
    };
  }
  Util.validateModel(config);
  if (!Util.empty(config.accessKeyId)) {
    if (Util.empty(config.type)) {
      config.type = 'access_key';
    }
    var credentialConfig = new Credential.Config{
      accessKeyId =  config.accessKeyId,
      type = config.type,
      accessKeySecret =  config.accessKeySecret,
      securityToken = config.securityToken,
    };
    @credential = new Credential(credentialConfig);
  }
  @endpoint = config.endpoint;
  @protocol = config.protocol;
  @userAgent = config.userAgent;
  @nickname = config.nickname;
  @region = config.region;
}

model CreateAppModel {
  headers?: map[string]string(name='headers'),
  body: GetAppResponse(name='body'),
}

/**
 * 创建App
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function createApp(request: CreateAppRequest) throws: CreateAppModel  {
  var runtime = new RuntimeOptions{};
  return createAppEx(request, runtime);
}

/**
 * 创建App
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
api createAppEx(request: CreateAppRequest, runtime: RuntimeOptions): CreateAppModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/app/create`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 201)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model DeleteAppModel {
  headers?: map[string]string(name='headers'),
}

/**
 * 删除App
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function deleteApp(request: DeleteAppRequest) throws: DeleteAppModel  {
  var runtime = new RuntimeOptions{};
  return deleteAppEx(request, runtime);
}

/**
 * 删除App
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api deleteAppEx(request: DeleteAppRequest, runtime: RuntimeOptions): DeleteAppModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/app/delete`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 204)) {
    return {
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model GetAppModel {
  headers?: map[string]string(name='headers'),
  body: GetAppResponse(name='body'),
}

/**
 * 查询App
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function getApp(request: GetAppRequest) throws: GetAppModel  {
  var runtime = new RuntimeOptions{};
  return getAppEx(request, runtime);
}

/**
 * 查询App
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api getAppEx(request: GetAppRequest, runtime: RuntimeOptions): GetAppModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/app/get`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model GetPublicKeyModel {
  headers?: map[string]string(name='headers'),
  body: GetAppPublicKeyResponse(name='body'),
}

/**
 * 查询App设置的公钥
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function getPublicKey(request: GetAppPublicKeyRequest) throws: GetPublicKeyModel  {
  var runtime = new RuntimeOptions{};
  return getPublicKeyEx(request, runtime);
}

/**
 * 查询App设置的公钥
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
api getPublicKeyEx(request: GetAppPublicKeyRequest, runtime: RuntimeOptions): GetPublicKeyModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/app/get_public_key`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model ListAppModel {
  headers?: map[string]string(name='headers'),
  body: ListAppsResponse(name='body'),
}

/**
 * 查询App列表
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function listApp(request: ListAppsRequest) throws: ListAppModel  {
  var runtime = new RuntimeOptions{};
  return listAppEx(request, runtime);
}

/**
 * 查询App列表
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
api listAppEx(request: ListAppsRequest, runtime: RuntimeOptions): ListAppModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/app/list`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model ListPublishedAppModel {
  headers?: map[string]string(name='headers'),
  body: ListAppsResponse(name='body'),
}

/**
 * 查询已发布的App列表
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function listPublishedApp(request: ListAppsRequest) throws: ListPublishedAppModel  {
  var runtime = new RuntimeOptions{};
  return listPublishedAppEx(request, runtime);
}

/**
 * 查询已发布的App列表
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
api listPublishedAppEx(request: ListAppsRequest, runtime: RuntimeOptions): ListPublishedAppModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/app/list_published`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model SetPublicKeyModel {
  headers?: map[string]string(name='headers'),
}

/**
 * 设置App公钥
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function setPublicKey(request: SetAppPublicKeyRequest) throws: SetPublicKeyModel  {
  var runtime = new RuntimeOptions{};
  return setPublicKeyEx(request, runtime);
}

/**
 * 设置App公钥
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
api setPublicKeyEx(request: SetAppPublicKeyRequest, runtime: RuntimeOptions): SetPublicKeyModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/app/set_public_key`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 204)) {
    return {
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model UpdateAppModel {
  headers?: map[string]string(name='headers'),
  body: GetAppResponse(name='body'),
}

/**
 * 修改App
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function updateApp(request: UpdateAppRequest) throws: UpdateAppModel  {
  var runtime = new RuntimeOptions{};
  return updateAppEx(request, runtime);
}

/**
 * 修改App
 * @tags app
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api updateAppEx(request: UpdateAppRequest, runtime: RuntimeOptions): UpdateAppModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/app/update`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model AddStoreModel {
  headers?: map[string]string(name='headers'),
  body: AddStoreResponse(name='body'),
}

/**
 * 添加Store
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function addStore(request: AddStoreRequest) throws: AddStoreModel  {
  var runtime = new RuntimeOptions{};
  return addStoreEx(request, runtime);
}

/**
 * 添加Store
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
api addStoreEx(request: AddStoreRequest, runtime: RuntimeOptions): AddStoreModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/add_store`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model CreateDomainModel {
  headers?: map[string]string(name='headers'),
  body: CreateDomainResponse(name='body'),
}

/**
 * 创建 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error InternalError The request has been failed due to some unknown error.
 * @error ServiceUnavailable The request has failed due to a temporary failure of the server.
 */
async function createDomain(request: CreateDomainRequest) throws: CreateDomainModel  {
  var runtime = new RuntimeOptions{};
  return createDomainEx(request, runtime);
}

/**
 * 创建 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error InternalError The request has been failed due to some unknown error.
 * @error ServiceUnavailable The request has failed due to a temporary failure of the server.
 */
api createDomainEx(request: CreateDomainRequest, runtime: RuntimeOptions): CreateDomainModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/create`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model DeleteSubdomainBizCnameCertModel {
  headers?: map[string]string(name='headers'),
}

/**
 * 删除domain业务面自定义域名的证书
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function deleteSubdomainBizCnameCert(request: DeleteBizCNameCertRequest) throws: DeleteSubdomainBizCnameCertModel  {
  var runtime = new RuntimeOptions{};
  return deleteSubdomainBizCnameCertEx(request, runtime);
}

/**
 * 删除domain业务面自定义域名的证书
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api deleteSubdomainBizCnameCertEx(request: DeleteBizCNameCertRequest, runtime: RuntimeOptions): DeleteSubdomainBizCnameCertModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/del_biz_cname_cert`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    return {
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model DeleteDomainModel {
  headers?: map[string]string(name='headers'),
}

/**
 * 删除 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 * @error ServiceUnavailable The request has failed due to a temporary failure of the server.
 */
async function deleteDomain(request: DeleteDomainRequest) throws: DeleteDomainModel  {
  var runtime = new RuntimeOptions{};
  return deleteDomainEx(request, runtime);
}

/**
 * 删除 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 * @error ServiceUnavailable The request has failed due to a temporary failure of the server.
 */
api deleteDomainEx(request: DeleteDomainRequest, runtime: RuntimeOptions): DeleteDomainModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/delete`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 204)) {
    return {
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model DeleteSubdomainBizCnameAndCertModel {
  headers?: map[string]string(name='headers'),
}

/**
 * 删除domain业务面自定义域名和证书
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function deleteSubdomainBizCnameAndCert(request: DeleteBizCNameAndCertRequest) throws: DeleteSubdomainBizCnameAndCertModel  {
  var runtime = new RuntimeOptions{};
  return deleteSubdomainBizCnameAndCertEx(request, runtime);
}

/**
 * 删除domain业务面自定义域名和证书
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api deleteSubdomainBizCnameAndCertEx(request: DeleteBizCNameAndCertRequest, runtime: RuntimeOptions): DeleteSubdomainBizCnameAndCertModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/delete_biz_cname_and_cert`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    return {
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model DeleteDataCnameAndCertModel {
  headers?: map[string]string(name='headers'),
}

/**
 * 删除domain数据面自定义域名和证书
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function deleteDataCnameAndCert(request: DeleteDataCNameAndCertRequest) throws: DeleteDataCnameAndCertModel  {
  var runtime = new RuntimeOptions{};
  return deleteDataCnameAndCertEx(request, runtime);
}

/**
 * 删除domain数据面自定义域名和证书
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api deleteDataCnameAndCertEx(request: DeleteDataCNameAndCertRequest, runtime: RuntimeOptions): DeleteDataCnameAndCertModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/delete_data_cname_and_cert`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    return {
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model GetDomainModel {
  headers?: map[string]string(name='headers'),
  body: GetDomainResponse(name='body'),
}

/**
 * 获取 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 * @error ServiceUnavailable The request has failed due to a temporary failure of the server.
 */
async function getDomain(request: GetDomainRequest) throws: GetDomainModel  {
  var runtime = new RuntimeOptions{};
  return getDomainEx(request, runtime);
}

/**
 * 获取 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 * @error ServiceUnavailable The request has failed due to a temporary failure of the server.
 */
api getDomainEx(request: GetDomainRequest, runtime: RuntimeOptions): GetDomainModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/get`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model GetSubdomainBizCnameInfoModel {
  headers?: map[string]string(name='headers'),
  body: GetBizCNameInfoResponse(name='body'),
}

/**
 * 获取domain业务面自定义域名信息
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function getSubdomainBizCnameInfo(request: GetBizCNameInfoRequest) throws: GetSubdomainBizCnameInfoModel  {
  var runtime = new RuntimeOptions{};
  return getSubdomainBizCnameInfoEx(request, runtime);
}

/**
 * 获取domain业务面自定义域名信息
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api getSubdomainBizCnameInfoEx(request: GetBizCNameInfoRequest, runtime: RuntimeOptions): GetSubdomainBizCnameInfoModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/get_biz_cname_info`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model GetCorsRuleListModel {
  headers?: map[string]string(name='headers'),
  body: ListDomainCORSRuleResponse(name='body'),
}

/**
 * 获取 domain 跨域规则列表
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function getCorsRuleList(request: GetCorsRuleListRequest) throws: GetCorsRuleListModel  {
  var runtime = new RuntimeOptions{};
  return getCorsRuleListEx(request, runtime);
}

/**
 * 获取 domain 跨域规则列表
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api getCorsRuleListEx(request: GetCorsRuleListRequest, runtime: RuntimeOptions): GetCorsRuleListModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/get_cors_rules`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model GetDataCnameInfoModel {
  headers?: map[string]string(name='headers'),
  body: GetBizCNameInfoResponse(name='body'),
}

/**
 * 获取domain数据面自定义域名信息
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function getDataCnameInfo(request: GetDataCNameInfoRequest) throws: GetDataCnameInfoModel  {
  var runtime = new RuntimeOptions{};
  return getDataCnameInfoEx(request, runtime);
}

/**
 * 获取domain数据面自定义域名信息
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api getDataCnameInfoEx(request: GetDataCNameInfoRequest, runtime: RuntimeOptions): GetDataCnameInfoModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/get_data_cname_info`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model ListDomainModel {
  headers?: map[string]string(name='headers'),
  body: ListDomainsResponse(name='body'),
}

/**
 * 列举 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error InternalError The request has been failed due to some unknown error.
 * @error undefined undefined
 */
async function listDomain(request: ListDomainsRequest) throws: ListDomainModel  {
  var runtime = new RuntimeOptions{};
  return listDomainEx(request, runtime);
}

/**
 * 列举 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error InternalError The request has been failed due to some unknown error.
 * @error undefined undefined
 */
api listDomainEx(request: ListDomainsRequest, runtime: RuntimeOptions): ListDomainModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/list`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model ListStoresModel {
  headers?: map[string]string(name='headers'),
  body: ListStoresResponse(name='body'),
}

/**
 * 查询Store列表
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function listStores(request: ListStoresRequest) throws: ListStoresModel  {
  var runtime = new RuntimeOptions{};
  return listStoresEx(request, runtime);
}

/**
 * 查询Store列表
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
api listStoresEx(request: ListStoresRequest, runtime: RuntimeOptions): ListStoresModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/list_stores`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model RemoveStoreModel {
  headers?: map[string]string(name='headers'),
}

/**
 * 移除Store
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function removeStore(request: RemoveStoreRequest) throws: RemoveStoreModel  {
  var runtime = new RuntimeOptions{};
  return removeStoreEx(request, runtime);
}

/**
 * 移除Store
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error InternalError The request has been failed due to some unknown error.
 */
api removeStoreEx(request: RemoveStoreRequest, runtime: RuntimeOptions): RemoveStoreModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/remove_store`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 204)) {
    return {
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model SearchModel {
  headers?: map[string]string(name='headers'),
  body: ListDomainsResponse(name='body'),
}

/**
 * 搜索domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function search(request: SearchDomainsRequest) throws: SearchModel  {
  var runtime = new RuntimeOptions{};
  return searchEx(request, runtime);
}

/**
 * 搜索domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api searchEx(request: SearchDomainsRequest, runtime: RuntimeOptions): SearchModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/search`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model SetBizCnameModel {
  headers?: map[string]string(name='headers'),
  body: SetBizCNameResponse(name='body'),
}

/**
 * 设置domain业务面cname
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function setBizCname(request: SetBizCNameRequest) throws: SetBizCnameModel  {
  var runtime = new RuntimeOptions{};
  return setBizCnameEx(request, runtime);
}

/**
 * 设置domain业务面cname
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api setBizCnameEx(request: SetBizCNameRequest, runtime: RuntimeOptions): SetBizCnameModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/set_biz_cname`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model SetSubdomainBizCnameCertModel {
  headers?: map[string]string(name='headers'),
  body: SetBizCNameCertResponse(name='body'),
}

/**
 * 设置domain业务面自定义域名的证书
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function setSubdomainBizCnameCert(request: SetBizCNameCertRequest) throws: SetSubdomainBizCnameCertModel  {
  var runtime = new RuntimeOptions{};
  return setSubdomainBizCnameCertEx(request, runtime);
}

/**
 * 设置domain业务面自定义域名的证书
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api setSubdomainBizCnameCertEx(request: SetBizCNameCertRequest, runtime: RuntimeOptions): SetSubdomainBizCnameCertModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/set_biz_cname_cert`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model SetCorsRuleListModel {
  headers?: map[string]string(name='headers'),
  body: ListDomainCORSRuleResponse(name='body'),
}

/**
 * 增加 domain 跨域规则
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function setCorsRuleList(request: SetCorsRuleListRequest) throws: SetCorsRuleListModel  {
  var runtime = new RuntimeOptions{};
  return setCorsRuleListEx(request, runtime);
}

/**
 * 增加 domain 跨域规则
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api setCorsRuleListEx(request: SetCorsRuleListRequest, runtime: RuntimeOptions): SetCorsRuleListModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/set_cors_rules`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model SetDataCnameModel {
  headers?: map[string]string(name='headers'),
  body: SetDataCNameResponse(name='body'),
}

/**
 * 设置domain数据面cname
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function setDataCname(request: SetDataCNameRequest) throws: SetDataCnameModel  {
  var runtime = new RuntimeOptions{};
  return setDataCnameEx(request, runtime);
}

/**
 * 设置domain数据面cname
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api setDataCnameEx(request: SetDataCNameRequest, runtime: RuntimeOptions): SetDataCnameModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/set_data_cname`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model SetShareLinkStatusModel {
  headers?: map[string]string(name='headers'),
  body: BaseDomainResponse(name='body'),
}

/**
 * 分享功能开关
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function setShareLinkStatus(request: SetShareLinkStatusRequest) throws: SetShareLinkStatusModel  {
  var runtime = new RuntimeOptions{};
  return setShareLinkStatusEx(request, runtime);
}

/**
 * 分享功能开关
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api setShareLinkStatusEx(request: SetShareLinkStatusRequest, runtime: RuntimeOptions): SetShareLinkStatusModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/set_share_link_status`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model SetShareStatusModel {
  headers?: map[string]string(name='headers'),
  body: BaseDomainResponse(name='body'),
}

/**
 * 共享功能开关
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function setShareStatus(request: SetShareStatusRequest) throws: SetShareStatusModel  {
  var runtime = new RuntimeOptions{};
  return setShareStatusEx(request, runtime);
}

/**
 * 共享功能开关
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api setShareStatusEx(request: SetShareStatusRequest, runtime: RuntimeOptions): SetShareStatusModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/set_share_status`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model UpdateDomainModel {
  headers?: map[string]string(name='headers'),
  body: UpdateDomainResponse(name='body'),
}

/**
 * 更新 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 * @error ServiceUnavailable The request has failed due to a temporary failure of the server.
 */
async function updateDomain(request: UpdateDomainRequest) throws: UpdateDomainModel  {
  var runtime = new RuntimeOptions{};
  return updateDomainEx(request, runtime);
}

/**
 * 更新 Domain
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error ForbiddenNoPermission No Permission to access resource {resource_name}.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 * @error ServiceUnavailable The request has failed due to a temporary failure of the server.
 */
api updateDomainEx(request: UpdateDomainRequest, runtime: RuntimeOptions): UpdateDomainModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/update`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model UpdateNameModel {
  headers?: map[string]string(name='headers'),
  body: GetDomainResponse(name='body'),
}

/**
 * 修改domain的名称
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function updateName(request: DomainUpdateNameRequest) throws: UpdateNameModel  {
  var runtime = new RuntimeOptions{};
  return updateNameEx(request, runtime);
}

/**
 * 修改domain的名称
 * @tags domain
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api updateNameEx(request: DomainUpdateNameRequest, runtime: RuntimeOptions): UpdateNameModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/domain/update_name`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

model SetSubdomainBizCnameModel {
  headers?: map[string]string(name='headers'),
  body: SetBizCNameResponse(name='body'),
}

/**
 * 设置domain业务面cname
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
async function setSubdomainBizCname(request: SetBizCNameRequest) throws: SetSubdomainBizCnameModel  {
  var runtime = new RuntimeOptions{};
  return setSubdomainBizCnameEx(request, runtime);
}

/**
 * 设置domain业务面cname
 * @error InvalidParameter The input parameter {parameter_name} is not valid.
 * @error Forbidden User not authorized to operate on the specified APIs.
 * @error NotFound The resource {resource_name} cannot be found. Please check.
 * @error InternalError The request has been failed due to some unknown error.
 */
api setSubdomainBizCnameEx(request: SetBizCNameRequest, runtime: RuntimeOptions): SetSubdomainBizCnameModel  {
  var accesskeyId = getAccessKeyId();
  var accessKeySecret = getAccessKeySecret();
  var securityToken = getSecurityToken();
  var realReq = Util.toMap(request);
  __request.protocol = Util.defaultString(@protocol, 'https');
  __request.method = 'POST';
  __request.pathname = getPathname(@nickname, `/v2/subdomain/set_biz_cname`);
  __request.headers = {
    user-agent = getUserAgent(),
    host = Util.defaultString(@endpoint, `${@region}.admin.aliyunpds.com`),
    content-type = 'application/json; charset=utf-8',
    ...request.httpheaders
  };
  realReq.httpheaders = null;

  if (!Util.empty(accesskeyId) && !Util.empty(accessKeySecret)) {
    if (!Util.empty(securityToken)) {
      __request.headers.x-acs-security-token = securityToken;
    }
    __request.headers.date = Util.getDateUTCString();
    __request.headers.accept = 'application/json';
    __request.headers.x-acs-signature-method = 'HMAC-SHA1';
    __request.headers.x-acs-signature-version = '1.0';
    var stringToSign = ROAUtil.getStringToSign(__request);
    __request.headers.authorization = `acs ${accesskeyId}:${ROAUtil.getSignature(stringToSign, accessKeySecret)}`;
  }
  __request.body = Util.toJSONString(realReq);
} returns {
  var respMap : object = null;
  var obj : any = null;
  if (Util.equalNumber(__response.statusCode, 200)) {
    obj = Util.readAsJSON(__response.body);
    respMap = Util.assertAsMap(obj);
    return {
      body = respMap,
      headers =  __response.headers,
    };
  }

  if (!Util.empty(__response.headers.x-ca-error-message)) {
    throw {
      data = {
        requestId = __response.headers.x-ca-request-id,
        statusCode = __response.statusCode,
        statusMessage = __response.statusMessage,
      },
      message = __response.headers.x-ca-error-message,
    };
  }
  obj = Util.readAsJSON(__response.body);
  respMap = Util.assertAsMap(obj);
  throw {
    data = {
      requestId = __response.headers.x-ca-request-id,
      statusCode = __response.statusCode,
      statusMessage = __response.statusMessage,
    },
    ...respMap,
  };
} runtime {
  timeouted = 'retry',
  readTimeout = runtime.readTimeout,
  connectTimeout = runtime.connectTimeout,
  localAddr = runtime.localAddr,
  httpProxy = runtime.httpProxy,
  httpsProxy = runtime.httpsProxy,
  noProxy = runtime.noProxy,
  maxIdleConns = runtime.maxIdleConns,
  socks5Proxy = runtime.socks5Proxy,
  socks5NetWork = runtime.socks5NetWork,
  retry = {
    retryable = runtime.autoretry,
    maxAttempts = Util.defaultNumber(runtime.maxAttempts, 3),
  },
  backoff = {
    policy = Util.defaultString(runtime.backoffPolicy, 'no'),
    period = Util.defaultNumber(runtime.backoffPeriod, 1),
  },
  ignoreSSL = runtime.ignoreSSL
}

/**
 * 
 */
model AccountAccessTokenResponse {
  accessToken: string(name='access_token', description='用于调用业务接口的accessToken', example='cnskjajkahwdhwialsnd'),
  avatar?: string(name='avatar', description='当前用户头像', example='cherry'),
  defaultDriveId?: string(name='default_drive_id', description='Default Drive ID', example='100'),
  defaultSboxDriveId?: string(name='default_sbox_drive_id', description='Default Sbox Drive ID', example='100'),
  deviceId?: string(name='device_id', description='device_id 通过device flow 绑定的设备ID', example='xxx'),
  deviceName?: string(name='device_name', description='device_name 通过device flow 绑定的设备名', example='xxx'),
  domainId?: string(name='domain_id', description='domainID 用户登录的domainID', example='xxx'),
  existLink?: [ LinkInfo ](name='exist_link', description='当前用户已存在的登录方式', example='', items='{"$ref":"#/definitions/LinkInfo"}'),
  expireTime?: string(name='expire_time', description='accessToken过期时间，ISO时间', example='2019-09-01T06:57:48.813Z'),
  expiresIn?: int64(name='expires_in', description='accessToken过期时间，单位秒', example=3600, format='int64'),
  isFirstLogin?: boolean(name='is_first_login', description='用户是否为第一次登录', example=true),
  needLink: boolean(name='need_link', description='是否需要绑定', example=false),
  needRpVerify?: boolean(name='need_rp_verify', description='用户是否需要进行的实人认证', example=true),
  nickName?: string(name='nick_name', description='当前用户昵称', example='cherry'),
  pinSetup?: boolean(name='pin_setup', description='用户的数据密码是否设置过', example=true),
  refreshToken?: string(name='refresh_token', description='用于刷新accessToken', example='cnskjajkahwdhwialsnd'),
  role?: string(name='role', description='当前用户角色', example='user'),
  state?: string(name='state', description='临时权限，用于登录成功后设置密码', example='klafhjas-asdasd-asd-as-d-asd-asd-asdasd'),
  status?: string(name='status', description='当前用户状态', example='enabled'),
  subdomainId?: string(name='subdomain_id', description='subdomain_id 用户登录的subdomain_id', example='xxx'),
  tokenType?: string(name='token_type', description='accessToken类型，Bearer', example='Bearer'),
  userData?: object(name='user_data', additionalProperties='{"type":"object"}', description='用户自定义数据，格式为json，可用于配置项、少量临时数据等存储，不超过1K', example='{ is_student: true }'),
  userId?: string(name='user_id', description='当前用户ID', example='DING-xxxxx'),
  userName?: string(name='user_name', description='当前用户名', example='cherry'),
}

/**
 * 
 */
model AccountLogDetail {
  authenticationType?: string(name='authentication_type', description='authentication_type', example='mobile'),
  loginType?: string(name='login_type', description='login_type', example='sms'),
}

/**
 * 
 */
model ActionDetail {
  create?: CreateDetail(name='create'),
  delete?: DeleteDetail(name='delete'),
  edit?: EditDetail(name='edit'),
  move?: MoveDetail(name='move'),
  rename?: RenameDetail(name='rename'),
  restore?: RestoreDetail(name='restore'),
  trash?: TrashDetail(name='trash'),
}

/**
 * 
 */
model ActionItem {
  action?: string(name='action'),
  effect?: string(name='effect'),
  inherited?: boolean(name='inherited'),
  inheritedFrom?: string(name='inherited_from'),
}

/**
 * 
 */
model Actor {
  aliUser?: ActorAliUser(name='ali_user'),
  anonymousUser?: ActorAnonymousUser(name='anonymous_user'),
  shareLinkUser?: ActorShareLinkUser(name='share_link_user'),
  system?: ActorSystem(name='system'),
  user?: ActorUser(name='user'),
}

/**
 * 
 */
model ActorAliUser {
  aliUserId?: string(name='ali_user_id', description='AliUserID'),
  aliUserType?: string(name='ali_user_type', description='AliUserType'),
  asUserId?: string(name='as_user_id', description='AsUserID'),
}

/**
 * 
 */
model ActorAnonymousUser {
}

/**
 * 
 */
model ActorShareLinkUser {
  creator?: string(name='creator', description='Creator'),
  shareId?: string(name='share_id', description='ShareID'),
  userId?: string(name='user_id', description='UserID'),
  userName?: string(name='user_name', description='UserName'),
}

/**
 * 
 */
model ActorSystem {
  eventType?: string(name='event_type', description='EventType'),
}

/**
 * 
 */
model ActorUser {
  userId?: string(name='user_id', description='UserID'),
  userName?: string(name='user_name', description='UserName'),
}

/**
 * 
 */
model AddStoreRequest {
  httpheaders?: map[string]string,
  basePath?: string(name='base_path', description='存储公共前缀', example='ccp-data'),
  bucket?: string(name='bucket', description='bucket名称', example='data-sz-bucket'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  endpoint: string(name='endpoint', description='存储访问地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  ownership?: string(name='ownership', default='system', description='存储归属，system表示系统提供，custom表示使用自己的存储', enum='system, custom', example='system'),
  roleArn?: string(name='role_arn', description='访问Bucket的角色ARN', example='acs:oss:*:*:*'),
  type: string(name='type', description='存储类型，当前只支持oss', enum='oss', example='oss'),
}

/**
 * 
 */
model AddStoreResponse {
  accelerateEndpoint?: string(name='accelerate_endpoint', description='全球加速地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  basePath?: string(name='base_path', description='存储公共前缀', example='pds-data'),
  bucket: string(name='bucket', description='bucket名称', example='data-sz-bucket'),
  cdnEndpoint?: string(name='cdn_endpoint', description='内容分发地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  cdnRatelimitDisable?: boolean(name='cdn_ratelimit_disable', description='命中限速用户时是否关闭CDN地址返回', example=false),
  cdnTimelimit?: string(name='cdn_timelimit', description='CDN时间控制', example='0-8 or 23-5'),
  cdnUrlAuthKey?: string(name='cdn_url_auth_key', description='CDN鉴权key'),
  customizedAccelerateEndpoint?: string(name='customized_accelerate_endpoint', description='自定义全球加速地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  customizedCdnEndpoint?: string(name='customized_cdn_endpoint', description='自定义内容分发地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  customizedEndpoint?: string(name='customized_endpoint', description='自定义Public访问地址', example='https://{regionid}-data.mydomain.com/'),
  customizedInternalEndpoint?: string(name='customized_internal_endpoint', description='自定义vpc访问地址', example='https://{regionid}-data-vpc.mydomain.com/'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  endpoint: string(name='endpoint', description='Public访问地址', example='https://{domainid}.{regionid}.data.aliyunpds.com/'),
  enetEndpoint?: string(name='enet_endpoint', description='冷流地址', example='https://oss-cn-shenzhen-enet.aliyuncs.com/'),
  enetPercentConfig?: WhitePercentConfig(name='enet_percent_config'),
  internalEndpoint?: string(name='internal_endpoint', description='vpc访问地址', example='https://{domainid}.{regionid}.data-vpc.aliyunpds.com/'),
  location?: string(name='location', description='地点', example='cn-hangzhou'),
  ownership: string(name='ownership', description='存储归属，system表示系统提供，custom表示使用自己的存储', enum='system, custom', example='system'),
  policy: string(name='policy', description='Policy授权,system类型store会将bucket权限授予当前云账号'),
  roleArn?: string(name='role_arn', description='访问Bucket的角色ARN', example='acs:oss:*:*:*'),
  storeId: string(name='store_id', description='store ID', example='101'),
  type: string(name='type', description='存储类型，当前只支持oss', enum='oss', example='oss'),
}

/**
 * add story files request
 */
model AddStoryFilesRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  files?: [ StoryFile ](name='files', items='{"$ref":"#/definitions/StoryFile"}'),
  storyId: string(name='story_id', description='story_id'),
}

/**
 * add file to view
 */
model AddViewFileRequest {
  category: string(name='category', description='category', example='"album"'),
  driveId?: string(name='drive_id'),
  fields?: object(name='fields', additionalProperties='{"type":"object"}'),
  fileId?: string(name='file_id'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * 
 */
model Address {
  addressLine?: string(name='address_line'),
  city?: string(name='city'),
  country?: string(name='country'),
  district?: string(name='district'),
  location?: string(name='location'),
  province?: string(name='province'),
  township?: string(name='township'),
}

/**
 * 
 */
model AdminListStoresRequest {
}

/**
 * 
 */
model Aggregation {
  field?: string(name='field'),
  groups?: [ AggregationsGroup ](name='groups', items='{"$ref":"#/definitions/AggregationsGroup"}'),
  operation?: string(name='operation'),
  value?: double(name='value', format='double'),
}

/**
 * 
 */
model AggregationsGroup {
  count?: int64(name='count', format='int64'),
  value?: string(name='value'),
}

/**
 * 
 */
model AlbumsBaseRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
}

/**
 * 
 */
model ApiConfig {
  blacklist?: [ string ](name='blacklist', items='{"type":"string"}'),
  enabled?: boolean(name='enabled'),
  grayscaleConfig?: GrayscaleConfig(name='grayscale_config'),
  status?: string(name='status'),
  whitelistConfig?: WhitelistConfig(name='whitelist_config'),
}

/**
 * 
 */
model AppAccessStrategy {
  effect?: string(name='effect'),
  exceptAppIdList?: [ string ](name='except_app_id_list', items='{"type":"string"}'),
}

/**
 * 
 */
model AppConfig {
  allowUploadCustomFileExtList?: [ string ](name='allow_upload_custom_file_ext_list', items='{"type":"string"}'),
  allowUploadFileCategoryList?: [ string ](name='allow_upload_file_category_list', items='{"type":"string"}'),
  audioPlayEnable?: boolean(name='audio_play_enable'),
  blackAdminMenuItems?: string(name='black_admin_menu_items'),
  customAccountIdentityBase64?: boolean(name='custom_account_identity_base_64'),
  defaultUrlExpireSec?: int64(name='default_url_expire_sec', format='int64'),
  disableClientBuilder?: boolean(name='disable_client_builder'),
  disableGroup?: boolean(name='disable_group'),
  enableEditFileWithCreatePerm?: boolean(name='enable_edit_file_with_create_perm'),
  enableHiddenFile?: boolean(name='enable_hidden_file'),
  enableShareLinkCountLimit?: boolean(name='enable_share_link_count_limit'),
  enableSseOss?: boolean(name='enable_sse_oss'),
  enableTransferAcceleration?: boolean(name='enable_transfer_acceleration'),
  enableUpdateShareLinkByAdmin?: boolean(name='enable_update_share_link_by_admin'),
  hiddenSwitchUserRoleEntry?: boolean(name='hidden_switch_user_role_entry'),
  hideAdminEntry?: boolean(name='hide_admin_entry'),
  hideClientDownloadEntry?: boolean(name='hide_client_download_entry'),
  hideDriveFileEntry?: boolean(name='hide_drive_file_entry'),
  hideLogoutEntry?: boolean(name='hide_logout_entry'),
  hideShareAdminEntry?: boolean(name='hide_share_admin_entry'),
  hideSharelinkLogin?: boolean(name='hide_sharelink_login'),
  hideUserEntry?: boolean(name='hide_user_entry'),
  mountAppEnable?: boolean(name='mount_app_enable'),
  sameNameFileUploadMode?: string(name='same_name_file_upload_mode'),
  shareHideDisabledUser?: boolean(name='share_hide_disabled_user'),
  shareLinkDisableDownload?: boolean(name='share_link_disable_download'),
  shareLinkDisableUpload?: boolean(name='share_link_disable_upload'),
  shareLinkLoginAccessOnly?: boolean(name='share_link_login_access_only'),
  showCustomizedLoginConfig?: boolean(name='show_customized_login_config'),
  singleFileUploadSizeLimit?: int64(name='single_file_upload_size_limit', format='int64'),
  syncAppEnable?: boolean(name='sync_app_enable'),
  userCanAccessGroupRecycleBin?: boolean(name='user_can_access_group_recycle_bin'),
  videoPlayEnable?: boolean(name='video_play_enable'),
  webClientDownloadMode?: string(name='web_client_download_mode'),
  webVersion?: string(name='web_version'),
  whiteAdminMenuItems?: string(name='white_admin_menu_items'),
}

/**
 * ArchiveConfig 在线解压配置（可选配置，默认开启，未配置的role默认为AliyunPDSCloudUncompressRole）
 */
model ArchiveConfig {
  archiveFilesMaxSize?: int64(name='archive_files_max_size', format='int64'),
  enabled?: boolean(name='enabled'),
  role?: string(name='role'),
  uncompressFileMaxSize?: int64(name='uncompress_file_max_size', format='int64'),
}

/**
 * 预览压缩包结构
 */
model ArchiveListRequest {
  Format?: string(name='Format', description='格式类型，如果是uc，使用特殊格式'),
  RequestID?: string(name='RequestID'),
  archiveType?: string(name='archive_type'),
  domainId?: string(name='domain_id'),
  driveId?: string(name='drive_id', description='TODO 增加对ShareID的支持'),
  fileId?: string(name='file_id'),
  password?: string(name='password'),
}

/**
 * 预览压缩包结构 response
 */
model ArchiveListResponse {
  fileList?: object(name='file_list', additionalProperties='{"type":"object"}'),
  state?: string(name='state'),
  taskId?: string(name='task_id'),
}

/**
 * 获取解压任务状态
 */
model ArchiveStatusRequest {
  Format?: string(name='Format', description='格式类型，如果是uc，使用特殊格式'),
  RequestID?: string(name='RequestID'),
  archiveType?: string(name='archive_type'),
  domainId?: string(name='domain_id'),
  driveId?: string(name='drive_id', description='TODO 增加对ShareID的支持'),
  fileId?: string(name='file_id'),
  password?: string(name='password'),
  taskId?: string(name='task_id'),
}

/**
 * ArchiveStatusResponse response
 */
model ArchiveStatusResponse {
  fileList?: object(name='file_list', additionalProperties='{"type":"object"}'),
  progress?: int64(name='progress', format='int64'),
  state?: string(name='state'),
  taskId?: string(name='task_id'),
}

/**
 * 解压
 */
model ArchiveUncompressRequest {
  Format?: string(name='Format', description='格式类型，如果是uc，使用特殊格式'),
  RequestID?: string(name='RequestID'),
  archiveType?: string(name='archive_type'),
  domainId?: string(name='domain_id'),
  driveId?: string(name='drive_id', description='TODO 增加对ShareID的支持'),
  fileId?: string(name='file_id'),
  fileList?: [ string ](name='file_list', items='{"type":"string"}'),
  password?: string(name='password'),
  targetDriveId?: string(name='target_drive_id'),
  targetFileId?: string(name='target_file_id'),
}

/**
 * 解压 response
 */
model ArchiveUncompressResponse {
  state?: string(name='state'),
  taskId?: string(name='task_id'),
}

/**
 * 
 */
model AssignRoleSettingDetail {
  manageResourceId?: string(name='manage_resource_id', description='manage_resource_id', example='a123'),
  manageResourceName?: string(name='manage_resource_name', description='manage_resource_name', example='user_name_123'),
  manageResourceType?: string(name='manage_resource_type', description='manage_resource_type', example='user'),
  roleId?: string(name='role_id', description='role_id', example='SystemBaseSettingAdmin'),
}

/**
 * Get AsyncTask Response
 */
model AsyncTaskResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id
type:string', example='000e89fb-cf8f-11e9-8ab4-b6e980803a3b'),
  createdAt?: int64(name='created_at', description='created_at', example=0, format='int64'),
  errCode?: int64(name='err_code', description='err_code', example=200, format='int64'),
  message?: string(name='message', description='message', example='task is running'),
  state?: string(name='state', description='state', enum='Running, Failed, Succeed', example='success'),
  type?: string(name='type', description='type', example='Sync'),
}

/**
 * 音频转码信息meta响应
 */
model AudioPreviewPlayInfoMetaResponse {
  bitrate?: int64(name='bitrate', description='bitrate, 码率', example=123456, format='int64'),
  channels?: int64(name='channels', description='channels, 声道数', example=2, format='int64'),
  duration?: double(name='duration', description='duration, 视频长度', example=123, format='double'),
  sampleRate?: int64(name='sample_rate', description='sample_rate, 采样率', example=44100, format='int64'),
}

/**
 * 音频转码信息响应
 */
model AudioPreviewPlayInfoResponse {
  meta?: AudioPreviewPlayInfoMetaResponse(name='meta'),
  offlineAudioList?: [ VideoPreviewOfflineAudioTranscodingTaskResponse ](name='offline_audio_list', description='离线转码有效', items='{"$ref":"#/definitions/VideoPreviewOfflineAudioTranscodingTaskResponse"}'),
}

/**
 * 
 */
model AuditLogConfig {
  activeLogKeepDays?: int64(name='active_log_keep_days', format='int64'),
  enabled?: boolean(name='enabled'),
  redirectEnabled?: boolean(name='redirect_enabled'),
}

/**
 * 
 */
model AuditMgmtLogDetail {
  fileName?: string(name='file_name', description='file_name', example='log.csv'),
  query?: string(name='query', description='query', example='"app123"'),
}

/**
 * 
 */
model AuthConfig {
  appId?: string(name='app_id'),
  appScheme?: string(name='app_scheme'),
  appSecret?: string(name='app_secret'),
  callbackSecurity?: boolean(name='callback_security'),
  dingSyncConfig?: DingSyncConfig(name='ding_sync_config'),
  enable?: boolean(name='enable'),
  encodingAesKey?: string(name='encoding_aes_key'),
  endpoint?: string(name='endpoint'),
  enterpriseId?: string(name='enterprise_id'),
  ldapConfig?: LdapConfig(name='ldap_config'),
  loginPageHeaders?: object(name='login_page_headers', additionalProperties='{"type":"string"}'),
  loginPageTemplate?: string(name='login_page_template'),
  loginPageVars?: object(name='login_page_vars', additionalProperties='{"type":"object"}'),
  token?: string(name='token'),
  weChatSyncConfig?: WeChatSyncConfig(name='we_chat_sync_config'),
  whiteListConfig?: object(name='white_list_config', additionalProperties='{"type":"object"}'),
  whiteListEnable?: boolean(name='white_list_enable'),
}

/**
 * 
 */
model BackUpConfig {
  folderId?: string(name='folder_id', description='folder_id'),
  photoFolderId?: string(name='photo_folder_id', description='photo_folder_id'),
  subFolder?: object(name='sub_folder', additionalProperties='{"type":"string"}', description='sub_folder'),
  videoFolderId?: string(name='video_folder_id', description='video_folder_id'),
}

/**
 * 
 */
model BaseAdditionDataRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
}

/**
 * 从value只支持string升级为支持所有类型的附加数据，按需升级
 */
model BaseAdditionDataV2Request {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
}

/**
 * 
 */
model BaseAuditLogRequest {
  orderBy?: string(name='order_by', description='order_by', enum='acted_at DESC', example='name'),
  query?: string(name='query', description='query', example='not actor_name=user1', maxLength=4096),
}

/**
 * 
 */
model BaseAuditLogResponse {
  ClientDevice?: string(name='ClientDevice', description='客户端设备', example='"Chrome"'),
  ClientIP?: string(name='ClientIP', description='客户端IP', example='"123.132.213.231"'),
  ClientType?: string(name='ClientType', description='客户端类型', example='"Web"'),
  ClientVersion?: string(name='ClientVersion', description='客户端版本', example='"v1.0.0"'),
  actedAt?: string(name='acted_at', description='操作时间', example='"2021-02-05T06:07:05.181Z"'),
  actionCategory?: string(name='action_category', description='操作分类', example='1'),
  actionType?: string(name='action_type', description='操作类型', example='12'),
  actorId?: string(name='actor_id', description='操作者ID', example='"20000000ed6249fd8457ed6970000000"'),
  actorName?: string(name='actor_name', description='操作者名称', example='"user1"'),
  actorType?: string(name='actor_type', description='操作者类型', example='"User"'),
  detail?: LogDetail(name='detail'),
  filePathType?: string(name='file_path_type', description='文件空间类型', example='"self"'),
  logId?: string(name='log_id', description='唯一标识一条日志', example='"10000000ed6249fd8457ed6970000000"'),
  objectId?: string(name='object_id', description='对象ID', example='30000000ed6249fd8457ed6970000000'),
  objectName?: string(name='object_name', description='对象名', example='"设计组"'),
}

/**
 * Base file response
 */
model BaseCCPFileResponse {
  actionList?: [ string ](name='action_list', description='action_list', items='{"type":"string"}'),
  autoDeleteLeftSec?: int64(name='auto_delete_left_sec', description='auto_delete_left_sec', example=10000, format='int64'),
  category?: string(name='category', description='category', enum='doc, image, audio, video', example='doc'),
  characteristicHash?: string(name='characteristic_hash', description='CharacteristicHash'),
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  creatorId?: string(name='creator_id', description='creator_id', example='123abc'),
  creatorName?: string(name='creator_name', description='creator_name', example='test_user'),
  creatorType?: string(name='creator_type', description='creator_type', example='User, AliUser'),
  customField1?: string(name='custom_field_1', description='custom_field_1'),
  customField2?: string(name='custom_field_2', description='custom_field_2'),
  customType?: string(name='custom_type', description='custom_type'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode', example='pin'),
  exFieldsInfo?: object(name='ex_fields_info', additionalProperties='{"type":"object"}', description='ex_fields_info'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  filePathType?: string(name='file_path_type', description='TODO 先不在API上透出该字段，file_path_type目前在edm中返回；path type是否在PDS通用逻辑中展示，展示的含义是什么，需要再做分析'),
  hidden?: boolean(name='hidden', description='Hidden
type: boolean', enum='false, true', example=false),
  imageMediaMetadata?: ImageMediaResponse(name='image_media_metadata'),
  investigationStatus?: int64(name='investigation_status', description='InvestigationStatus', format='int64'),
  labels?: [ string ](name='labels', description='labels', example='label1:1, label2:2', items='{"type":"string"}'),
  lastModifierId?: string(name='last_modifier_id', description='last_modifier_id', example='123abc'),
  lastModifierName?: string(name='last_modifier_name', description='last_modifier_name', example='test_user'),
  lastModifierType?: string(name='last_modifier_type', description='last_modifier_type', example='User, AliUser'),
  localCreatedAt?: string(name='local_created_at', description='local_created_at', example='2019-08-20T06:51:27.292Z'),
  localModifiedAt?: string(name='local_modified_at'),
  meta?: string(name='meta'),
  mimeExtension?: string(name='mime_extension', description='mime_extension', example='mov'),
  mimeType?: string(name='mime_type', description='mime_type', example='video/quicktime'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFileId?: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  punishFlag?: int64(name='punish_flag', description='PunishFlag', format='int64'),
  punishReason?: string(name='punish_reason', description='PunishReason'),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  revisionVersion?: int64(name='revision_version', description='revision_version', example=1024, format='int64'),
  shareId?: string(name='share_id'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  starred?: boolean(name='starred', description='starred
type: boolean', example=false),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='@Deprecated streams url info'),
  syncDeviceFlag?: boolean(name='sync_device_flag', description='sync_device_flag'),
  syncFlag?: boolean(name='sync_flag', description='sync_flag'),
  syncMeta?: string(name='sync_meta', description='sync_meta'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  thumbnailUrls?: object(name='thumbnail_urls', additionalProperties='{"type":"string"}', description='thumbnail_urls'),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
  userTags?: object(name='user_tags', additionalProperties='{"type":"string"}', description='user_tags'),
  videoMediaMetadata?: VideoMediaResponse(name='video_media_metadata'),
  videoPreviewMetadata?: VideoPreviewResponse(name='video_preview_metadata'),
}

/**
 * complete file request
 */
model BaseCompleteFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id'),
  uploadId?: string(name='upload_id', description='upload_id'),
}

/**
 * create file request
 */
model BaseCreateFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  contentMd5?: string(name='content_md5', description='ContentMd5', example='E10ADC3949BA59ABBE56E057F20F883E'),
  contentType?: string(name='content_type', description='ContentType', example='application/json'),
  name: string(name='name', description='Name', example='ccp.jpg', maxLength=1024, minLength=1),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  size?: int64(name='size', description='Size', format='int64', minimum=0),
  type: string(name='type', description='Type', enum='file, folder', example='file'),
}

/**
 * base domain response
 */
model BaseDomainResponse {
  apiCname?: string(name='api_cname', description='Domain APICName', example='"pdsapi.yoursite.com"'),
  appCname?: string(name='app_cname', description='Domain AppCName', example='"pdsapp.yoursite.com"'),
  appConfig?: AppConfig(name='app_config'),
  archiveConfig?: ArchiveConfig(name='archive_config'),
  archiveFilesEnable?: boolean(name='archive_files_enable', description='打包下载配置'),
  auditLogConfig?: AuditLogConfig(name='audit_log_config'),
  authCname?: string(name='auth_cname', description='Domain AuthCName', example='"pdsauth.yoursite.com"'),
  authConfig?: object(name='auth_config', additionalProperties='{"$ref":"#/definitions/AuthConfig"}', description='登录相关信息', example='{}'),
  authDingdingAppId?: string(name='auth_dingding_app_id', description='钉钉 App Id', example='abc'),
  authDingdingAppSecret?: string(name='auth_dingding_app_secret', description='钉钉 App Secret', example='abc'),
  authDingdingEnable?: boolean(name='auth_dingding_enable', description='是否开启了钉钉认证', example=true),
  authRamAppId?: string(name='auth_ram_app_id', description='RAM App Id', example='abc'),
  authRamAppSecret?: string(name='auth_ram_app_secret', description='RAM App Secret', example='abc'),
  authRamEnable?: boolean(name='auth_ram_enable', description='是否开启了 RAM 认证', example=true),
  benefits?: object(name='benefits', additionalProperties='{"$ref":"#/definitions/BenefitMetaResponse"}'),
  createdAt?: string(name='created_at', description='Domain 创建时间', example='"2019-08-31T12:58:31.137Z"'),
  dataHashName?: string(name='data_hash_name', description='数据 Hash 算法', example='sha1'),
  defaultSuperAdminConfig?: DomainSuperAdminConfig(name='default_super_admin_config'),
  description?: string(name='description', description='Domain 描述', example='my test domain'),
  domainId?: string(name='domain_id', description='Domain ID', example='sz111'),
  domainName?: string(name='domain_name', description='Domain 描述', example='my test domain'),
  endpoints?: DomainEndpointsResponse(name='endpoints'),
  enterpriseCustomizedLogin?: boolean(name='enterprise_customized_login', description='企业文件管理专属登录开关'),
  eventFilenameMatches?: string(name='event_filename_matches', description='事件通知 MNS 匹配文件名', example='abc'),
  eventMnsEndpoint?: string(name='event_mns_endpoint', description='事件通知 MNS Endpoint', example='http://abc.mns.cn-shenzhen.aliyuncs.com'),
  eventMnsTopic?: string(name='event_mns_topic', description='事件通知 MNS Topic', example='abc'),
  eventNames?: [ string ](name='event_names', description='事件名列表', example='abc', items='{"type":"string"}'),
  eventRoleArn?: string(name='event_role_arn', description='事件通知 Role Arn'),
  expireTime?: int64(name='expire_time', description='预付费domain过期时间', format='int64'),
  fileCategory?: object(name='file_category', additionalProperties='{"type":"string"}'),
  groupConfig?: GroupConfig(name='group_config'),
  groupSingleDriveEnabled?: boolean(name='group_single_drive_enabled'),
  initDriveEnable?: boolean(name='init_drive_enable', description='是否开启了自动初始化 Drive', example=true),
  initDriveSize?: int64(name='init_drive_size', description='自动初始化 Drive 大小', example=1024, format='int64'),
  initDriveStoreId?: string(name='init_drive_store_id', description='自动初始化 Drive 所用 Store ID', example='1'),
  mode?: string(name='mode', description='Domain 类型', example='StandardMode'),
  multiRevisionConfig?: BaseMultiRevisionConfigResponse(name='multi_revision_config'),
  officeEditConfig?: OfficeEditConfig(name='office_edit_config'),
  officePreviewConfig?: OfficePreviewConfig(name='office_preview_config'),
  parallelUploadEnabled?: boolean(name='parallel_upload_enabled'),
  parentDomainId?: string(name='parent_domain_id', description='Parent Domain ID', example='sz111'),
  pathType?: string(name='path_type', description='Domain 类型', example='CCPPath'),
  prepaidPackage?: string(name='prepaid_package', description='预付费套餐'),
  publishedAppAccessStrategy?: AppAccessStrategy(name='published_app_access_strategy'),
  recycleBinConfig?: RecycleBinConfig(name='recycle_bin_config'),
  roleConfig?: RoleConfig(name='role_config'),
  serviceCode?: string(name='service_code', description='Domain ServiceCode', example='"edm"'),
  sharable?: boolean(name='sharable', description='是否开启了共享', example=true),
  shareDetail?: ShareDetailResponse(name='share_detail'),
  shareLinkDetail?: ShareLinkDetailResponse(name='share_link_detail'),
  shareLinkEnabled?: boolean(name='share_link_enabled', description='是否开启了分享', example=true),
  sizeQuota?: int64(name='size_quota', description='容量配额', format='int64'),
  sizeQuotaUsed?: int64(name='size_quota_used', format='int64'),
  spiInstanceId?: string(name='spi_instance_id', description='SPI 实例 id'),
  status?: int64(name='status', description='domain状态：创建中，正常，已过期', format='int64'),
  storeLevel?: string(name='store_level', description='存储级别', example='Standard'),
  storeRegionList?: [ string ](name='store_region_list', description='存储 Region 列表', example='cn-hangzhou', items='{"type":"string"}'),
  subdomainConfig?: SubdomainConfig(name='subdomain_config'),
  updatedAt?: string(name='updated_at', description='Domain 更新时间', example='"2019-08-31T12:58:31.137Z"'),
  usedSize?: int64(name='used_size', description='逻辑空间使用量，单位为字节', example=1073741824, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userCountQuota?: int64(name='user_count_quota', description='用户数配额', format='int64'),
  userSingleDriveEnabled?: boolean(name='user_single_drive_enabled', description='user和group只能有一个drive的开关'),
  videoPreviewAppConfig?: VideoPreviewAppConfig(name='video_preview_app_config'),
  videoPreviewConfig?: VideoPreviewConfig(name='video_preview_config'),
  watermarkConfig?: BaseWatermarkConfigResponse(name='watermark_config'),
}

/**
 * Base drive response
 */
model BaseDriveResponse {
  actionList?: [ string ](name='action_list', items='{"type":"string"}'),
  category?: string(name='category'),
  createdAt?: string(name='created_at'),
  creator?: string(name='creator', description='Drive 创建者', example='ccp'),
  description?: string(name='description', description='Drive 备注信息', example='ccp team drive'),
  domainId?: string(name='domain_id', description='Domain ID', example='hz999'),
  driveId?: string(name='drive_id', description='Drive ID', example='123'),
  driveName?: string(name='drive_name', description='Drive 名称', example='ccpdrive'),
  driveType?: string(name='drive_type', description='Drive 类型', example='normal'),
  encryptDataAccess?: boolean(name='encrypt_data_access'),
  encryptMode?: string(name='encrypt_mode'),
  owner?: string(name='owner', description='Drive 所有者', example='ccp'),
  ownerType?: string(name='owner_type', description='Drive 所有者类型', example='user'),
  permission?: object(name='permission', additionalProperties='{"$ref":"#/definitions/IDPermission"}'),
  relativePath?: string(name='relative_path', description='Drive存储基于store的相对路径，domain的PathType为OSSPath时返回', example='/a/b/e/'),
  status?: string(name='status', description='Drive 状态', example='enabled'),
  storeId?: string(name='store_id', description='存储 ID, domain的PathType为OSSPath时返回', example='123'),
  subdomainId?: string(name='subdomain_id', description='subdomain_id'),
  totalSize?: int64(name='total_size', description='Drive 空间总量', example=102400, format='int64'),
  updatedAt?: string(name='updated_at'),
  usedSize?: int64(name='used_size', description='Drive 空间已使用量', example=1024, format='int64'),
}

/**
 * list_file_by_anonymous base response
 */
model BaseFileAnonymousResponse {
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  name?: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  size?: int64(name='size', description='size, type=file时才有效', example=1024, format='int64', minimum=0),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
}

/**
 * the delta file info
 */
model BaseFileDeltaInfo {
  actionList?: [ string ](name='action_list', description='action_list', items='{"type":"string"}'),
  autoDeleteLeftSec?: int64(name='auto_delete_left_sec', description='auto_delete_left_sec', example=10000, format='int64'),
  category?: string(name='category', description='category', enum='doc, image, audio, video', example='doc'),
  characteristicHash?: string(name='characteristic_hash', description='CharacteristicHash'),
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  creatorId?: string(name='creator_id', description='creator_id', example='123abc'),
  creatorName?: string(name='creator_name', description='creator_name', example='test_user'),
  creatorType?: string(name='creator_type', description='creator_type', example='User, AliUser'),
  customField1?: string(name='custom_field_1', description='custom_field_1'),
  customField2?: string(name='custom_field_2', description='custom_field_2'),
  customType?: string(name='custom_type', description='custom_type'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode', example='pin'),
  exFieldsInfo?: object(name='ex_fields_info', additionalProperties='{"type":"object"}', description='ex_fields_info'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  filePathType?: string(name='file_path_type', description='TODO 先不在API上透出该字段，file_path_type目前在edm中返回；path type是否在PDS通用逻辑中展示，展示的含义是什么，需要再做分析'),
  hidden?: boolean(name='hidden', description='Hidden
type: boolean', enum='false, true', example=false),
  imageMediaMetadata?: ImageMediaResponse(name='image_media_metadata'),
  investigationStatus?: int64(name='investigation_status', description='InvestigationStatus', format='int64'),
  labels?: [ string ](name='labels', description='labels', example='label1:1, label2:2', items='{"type":"string"}'),
  lastModifierId?: string(name='last_modifier_id', description='last_modifier_id', example='123abc'),
  lastModifierName?: string(name='last_modifier_name', description='last_modifier_name', example='test_user'),
  lastModifierType?: string(name='last_modifier_type', description='last_modifier_type', example='User, AliUser'),
  localCreatedAt?: string(name='local_created_at', description='local_created_at', example='2019-08-20T06:51:27.292Z'),
  localModifiedAt?: string(name='local_modified_at'),
  meta?: string(name='meta'),
  mimeExtension?: string(name='mime_extension', description='mime_extension', example='mov'),
  mimeType?: string(name='mime_type', description='mime_type', example='video/quicktime'),
  moveType?: string(name='move_type'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFileId?: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  punishFlag?: int64(name='punish_flag', description='PunishFlag', format='int64'),
  punishReason?: string(name='punish_reason', description='PunishReason'),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  revisionVersion?: int64(name='revision_version', description='revision_version', example=1024, format='int64'),
  shareId?: string(name='share_id'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  srcParentFileId?: string(name='src_parent_file_id'),
  starred?: boolean(name='starred', description='starred
type: boolean', example=false),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='@Deprecated streams url info'),
  syncDeviceFlag?: boolean(name='sync_device_flag', description='sync_device_flag'),
  syncFlag?: boolean(name='sync_flag', description='sync_flag'),
  syncMeta?: string(name='sync_meta', description='sync_meta'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  thumbnailUrls?: object(name='thumbnail_urls', additionalProperties='{"type":"string"}', description='thumbnail_urls'),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
  userTags?: object(name='user_tags', additionalProperties='{"type":"string"}', description='user_tags'),
  videoMediaMetadata?: VideoMediaResponse(name='video_media_metadata'),
  videoPreviewMetadata?: VideoPreviewResponse(name='video_preview_metadata'),
}

/**
 * 
 */
model BaseFileListInheritPermissionResponse {
  fileId: string(name='file_id', description='被授权的文件ID', example='xxx'),
  member?: FilePermissionMember(name='member'),
}

/**
 * 
 */
model BaseFileProcessRequest {
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 用户文件共享/授权列表返回信息
 */
model BaseFileUserPermissionResponse {
  canAccess: boolean(name='can_access', description='当前用户是否能访问此授权', example=false),
  createdAt: int64(name='created_at', description='创建时间', example=1633620681914, format='int64'),
  creator: string(name='creator', description='创建者的UserID', example='af1***db2'),
  disinheritSubGroup: boolean(name='disinherit_sub_group', description='是否禁用子团队继承', example=false),
  domainId: string(name='domain_id', description='domain_id', example='bj411'),
  driveId: string(name='drive_id', description='被授权的driveID', example='a1f***bc2'),
  expireTime: int64(name='expire_time', description='过期时间', example=1633620681914, format='int64'),
  fileFullPath: string(name='file_full_path', description='授权的文件ID', example='a1f***bc2'),
  fileId: string(name='file_id', description='授权的文件ID', example='a1f***bc2'),
  identity: Identity(name='identity'),
  roleId: string(name='role_id', description='授予的角色', example='SystemGroupAdmin'),
}

/**
 * 获取文件上传URL
 */
model BaseGetUploadUrlRequest {
  contentMd5?: string(name='content_md5', description='content_md5', example='E10ADC3949BA59ABBE56E057F20F883E', maxLength=32),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='upload_part_list', example='', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id'),
  uploadId: string(name='upload_id', description='upload_id', example='3920F2BE4D9446D6967E2ED505A97EFD'),
}

/**
 * Base file response
 */
model BaseHostingFileResponse {
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  filePath?: string(name='file_path', description='file_path', example='/a.jpg'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFilePath?: string(name='parent_file_path', description='parent_file_id', example='/', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  shareId?: string(name='share_id', description='share_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', pattern='[0-9]+'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 
 */
model BaseIdentityBenefitPkgDeliveryInfoRequest {
  amount?: int64(name='amount', description='权益包数量', example=1, format='int64'),
  deliveryId?: string(name='delivery_id', description='权益下发的唯一标识', example='"123ace93f0123d"'),
  expireTime?: int64(name='expire_time', description='权益包超期时间的时间戳，单位为毫秒', example=1633167071000, format='int64'),
}

/**
 * 
 */
model BaseIdentityToBenefitPkgMappingRequest {
  domainId?: string(name='domain_id', description='domain ID', example='sz100'),
  identityId: string(name='identity_id', description='实体的唯一标识，如 userID', example='"user1"'),
  identityType: string(name='identity_type', description='实体类型，当前支持user类型实体', example='user'),
}

/**
 * Identity to benefit pkg mapping info
 */
model BaseIdentityToBenefitPkgMappingResponse {
  benefitPkgComputationRule?: string(name='benefit_pkg_computation_rule'),
  benefitPkgId?: string(name='benefit_pkg_id'),
  benefitPkgName?: string(name='benefit_pkg_name'),
  benefitPkgOwnerId?: string(name='benefit_pkg_owner_id'),
  benefitPkgPriority?: int64(name='benefit_pkg_priority', format='int64'),
  benefitPkgType?: string(name='benefit_pkg_type'),
  createdAt?: string(name='created_at'),
  customBenefitMeta?: object(name='custom_benefit_meta', additionalProperties='{"$ref":"#/definitions/CustomBenefitMeta"}'),
  deliveryInfoList?: [ BenefitPkgDeliveryInfoResponse ](name='delivery_info_list', items='{"$ref":"#/definitions/BenefitPkgDeliveryInfoResponse"}'),
  identityId?: string(name='identity_id'),
  identityType?: string(name='identity_type'),
  updatedAt?: string(name='updated_at'),
}

/**
 * Base image process
 */
model BaseImageProcessRequest {
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * list file request
 */
model BaseListFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int64(name='limit', default=50, description='limit', example=10, format='int64', maximum=200, minimum=0),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  signToken?: string(name='sign_token'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 
 */
model BaseMediaResponse {
  addressLine?: string(name='address_line', description='address_line', example='北京市昌平区白各庄新村路'),
  city?: string(name='city', description='city', example='杭州'),
  country?: string(name='country', description='country', example='中国'),
  district?: string(name='district', description='district', example='余杭区'),
  height?: int64(name='height', default=0, description='height', example=720, format='int64'),
  imageTags?: [ SystemTag ](name='image_tags', description='system_tags', items='{"$ref":"#/definitions/SystemTag"}'),
  location?: string(name='location', description='location', example='40.110333,116.349311'),
  province?: string(name='province', description='province', example='浙江省'),
  time?: string(name='time', description='time', format='date-time'),
  township?: string(name='township', description='township', example='沙河镇'),
  width?: int64(name='width', default=0, description='width', example=1024, format='int64'),
}

/**
 * 文件移动请求
 */
model BaseMoveFileRequest {
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  newName?: string(name='new_name', description='new_name', example='ccp.jpg', maxLength=1024, minLength=1),
  shareId?: string(name='share_id'),
}

/**
 * base multi revision config response
 */
model BaseMultiRevisionConfigResponse {
  enabled?: boolean(name='enabled'),
  revisionCount?: int64(name='revision_count', format='int64'),
  revisionMergeEnabled?: boolean(name='revision_merge_enabled'),
  revisionRecyclePeriod?: int64(name='revision_recycle_period', format='int64'),
}

/**
 * 
 */
model BaseRequest {
  category: string(name='category', description='category', example='"album"'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * 
 */
model BaseRevisionRequest {
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  revisionId: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
}

/**
 * 
 */
model BaseRevisionResponse {
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  creatorId?: string(name='creator_id', description='creator_id', example='123abc'),
  creatorName?: string(name='creator_name', description='creator_name', example='test_user'),
  creatorType?: string(name='creator_type', description='creator_type', example='User, AliUser'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  isLatestVersion?: boolean(name='is_latest_version', description='is_latest_version
type: boolean'),
  keepForever?: boolean(name='keep_forever', default=false, description='keep_forever
type: boolean', example=false),
  revisionCreateReason?: string(name='revision_create_reason', description='revision_create_reason
type: string', example='description', maxLength=1024),
  revisionDescription?: string(name='revision_description', description='revision_description
type: string', example='description', maxLength=1024),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  revisionName?: string(name='revision_name', description='revision_name
name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  revisionVersion?: int64(name='revision_version', description='revision_version', example=1024, format='int64'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * list_share_link response
 */
model BaseShareLinkResponse {
  accessCount?: int64(name='access_count', description='access_count', example=1, format='int64'),
  category?: string(name='category', description='Category', example='xxx'),
  comments?: string(name='comments', description='comments', example='xxx'),
  creatable?: boolean(name='creatable', description='允许上传', example=true),
  creatableFileIdList?: [ string ](name='creatable_file_id_list', description='允许上传的目录列表', example='xxx', items='{"type":"string"}'),
  createdAt?: string(name='created_at', description='created_at', example='2006-01-02T15:04:05.999Z', format='date-time'),
  creator?: string(name='creator', description='creator', example='xxx'),
  description?: string(name='description', description='description', example='desc'),
  disableDownload?: boolean(name='disable_download', description='禁止下载分享中的文件', example=true),
  disablePreview?: boolean(name='disable_preview', description='禁止预览分享中的文件', example=true),
  disableSave?: boolean(name='disable_save', description='禁止转存分享中的文件', example=true),
  disableVisible?: boolean(name='disable_visible', description='分享中的文件不可见', example=true),
  downloadCount?: int64(name='download_count', description='下载次数', example=1, format='int64'),
  downloadLimit?: int64(name='download_limit', description='分享下载次数限制', example=10, format='int64'),
  driveFileList?: [ ShareFile ](name='drive_file_list', description='file_list', example='[object Object], [object Object]', items='{"$ref":"#/definitions/ShareFile"}'),
  driveId?: string(name='drive_id', description='drive_id', example='1'),
  enableFileChangedNotify?: boolean(name='enable_file_changed_notify', description='enable_file_changed_notify', example=true),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z', format='date-time'),
  expired?: boolean(name='expired', description='expired', example=false),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  fileIdList?: [ string ](name='file_id_list', description='file_id_list', example='5d5b846942cf94fa72324c14a4bda34e81da635d, file_id_2', items='{"type":"string"}'),
  filePathList?: [ string ](name='file_path_list', description='file_id_list', example='/SD2/, /HD2/', items='{"type":"string"}'),
  isSubscribed?: boolean(name='is_subscribed', description='is_subscribed', example=true),
  numOfSubscribers?: int64(name='num_of_subscribers', description='num_of_subscribers', example=7, format='int64'),
  officeEditable?: boolean(name='office_editable', description='允许在线编辑文档', example=true),
  previewCount?: int64(name='preview_count', description='preview_count', example=1, format='int64'),
  previewLimit?: int64(name='preview_limit', description='分享预览次数限制', example=10, format='int64'),
  reportCount?: int64(name='report_count', description='举报次数', example=1, format='int64'),
  requireLogin?: boolean(name='require_login', description='企业内(domain)登录后才允许使用分享', example=true),
  saveCount?: int64(name='save_count', description='转存次数', example=1, format='int64'),
  saveDownloadLimit?: int64(name='save_download_limit', description='分享转存和下载的总次数限制', example=10, format='int64'),
  saveLimit?: int64(name='save_limit', description='分享转存次数限制', example=10, format='int64'),
  shareAllFiles?: boolean(name='share_all_files', description='是否分享整个drive中的文件，仅文件分享才有效，true时file_id_list字段无效', example=true),
  shareIcon?: string(name='share_icon', description='share_icon', example='xxx'),
  shareId?: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
  shareMsg?: string(name='share_msg', description='share_msg', example='复制这条消息并打开app，即可跳转到对应的分享页面'),
  shareName?: string(name='share_name', description='share_name', example='name'),
  sharePolicy?: string(name='share_policy', description='share_policy', enum='url, msg', example='url'),
  sharePwd?: string(name='share_pwd', description='share_pwd', example='12ABcd'),
  shareUrl?: string(name='share_url', description='share_url', example='https://www.aliyundrive.com/sharelinks/index/abcdefghi'),
  status?: string(name='status', description='status', example='xxx'),
  updatedAt?: string(name='updated_at', description='updated_at', example='2006-01-02T15:04:05.999Z', format='date-time'),
  videoPreviewCount?: int64(name='video_preview_count', description='音视频播放次数', example=1, format='int64'),
  viewId?: string(name='view_id', description='ViewID', example='xxx'),
}

/**
 * List share response
 */
model BaseShareResponse {
  createdAt?: string(name='created_at', description='created_at', example='2006-01-02T15:04:05.999Z'),
  creator?: string(name='creator', description='creator', example='xxx'),
  description?: string(name='description', description='description', example='share description'),
  domainId?: string(name='domain_id', description='domain_id', example='domain-1'),
  driveId?: string(name='drive_id', description='drive_id', example='1'),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z'),
  expired?: boolean(name='expired', description='expired', example=false),
  owner?: string(name='owner', description='owner', example='xxx'),
  ownerType?: string(name='owner_type', description='owner', example='xxx'),
  permissions?: [ string ](name='permissions', description='permissions', example='', items='{"type":"string"}'),
  shareFileId?: string(name='share_file_id', description='share_file_id'),
  shareFilePath?: string(name='share_file_path', description='share_path', example='/a/b/c/'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6'),
  shareName?: string(name='share_name', description='share_name', example='new_share'),
  sharePolicy?: [ SharePermissionPolicy ](name='share_policy', items='{"$ref":"#/definitions/SharePermissionPolicy"}'),
  status?: string(name='status', description='status', example='enabled'),
  updatedAt?: string(name='updated_at', description='updated_at', example='2006-01-02T15:04:05.999Z'),
}

/**
 * 
 */
model BaseSortShareLinkRequest {
  orderBy?: string(name='order_by', description='order_by', enum='share_name, description, created_at, updated_at', example='share_name'),
  orderDirection?: string(name='order_direction', description='order_direction', enum='ASC, DESC', example='ASC'),
}

/**
 * 
 */
model BaseStoreInfoResponse {
  bucket?: string(name='bucket', description='bucket名称', example='data-sz-bucket'),
  customizedEndpoint?: string(name='customized_endpoint', description='自定义Public访问地址', example='https://{regionid}-data.mydomain.com/'),
  endpoint?: string(name='endpoint', description='Public访问地址', example='https://{domainid}.{regionid}.data.aliyunpds.com/'),
  ownership?: string(name='ownership', description='存储归属，system表示系统提供，custom表示使用自己的存储', enum='system, custom', example='system'),
  storeId?: string(name='store_id', description='store ID', example='101'),
  transferAccEnabled?: boolean(name='transfer_acc_enabled', description='是否开启传输加速'),
  type?: string(name='type', description='存储类型，当前只支持oss', enum='oss', example='oss'),
}

/**
 * 
 */
model BaseSubdomainResponse {
  createdAt: string(name='created_at', description='创建时间', example='"2021-02-05T06:07:05.181Z"'),
  description: string(name='description', description='描述', example='"描述-1"'),
  groupSingeDriveEnable?: boolean(name='group_singe_drive_enable'),
  name: string(name='name', description='名称', example='"subdomain-1"'),
  sharable?: boolean(name='sharable', description='是否开启了共享', example=true),
  shareDetail?: ShareDetailResponse(name='share_detail'),
  shareLinkDetail?: ShareLinkDetailResponse(name='share_link_detail'),
  shareLinkEnabled?: boolean(name='share_link_enabled', description='是否开启了分享', example=true),
  status?: int64(name='status', description='当前状态', example=0, format='int64'),
  subdomainId: string(name='subdomain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
  totalSize: int64(name='total_size', description='逻辑空间quota，-1表示无限制，单位为字节', example=1073741824, format='int64'),
  updatedAt: string(name='updated_at', description='更新时间', example='"2021-02-05T06:07:05.181Z"'),
  usedSize?: int64(name='used_size', description='逻辑空间使用量，单位为字节', example=1073741824, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userQuota: int64(name='user_quota', description='用户数quota，-1表示无限制', example=-1, format='int64'),
  userSingleDriveEnabled?: boolean(name='user_single_drive_enabled'),
}

/**
 * user_tags 字段
 */
model BaseUserTagsRequest {
  userTags?: [ UserTag ](name='user_tags', description='user_tags', items='{"$ref":"#/definitions/UserTag"}'),
}

/**
 * base watermark config response
 */
model BaseWatermarkConfigResponse {
  bold?: boolean(name='bold'),
  displayAccessUserName?: boolean(name='display_access_user_name'),
  displayCustomText?: string(name='display_custom_text'),
  displayShareLinkCreatorName?: boolean(name='display_shareLink_creator_name'),
  enableDocPreview?: boolean(name='enable_doc_preview'),
  enableOnPreview?: boolean(name='enable_on_preview'),
  fillStyle?: string(name='fill_style'),
  font?: string(name='font'),
  horizontal?: int64(name='horizontal', format='int64'),
  rotate?: int64(name='rotate', format='int64'),
  size?: int64(name='size', format='int64'),
  vertical?: int64(name='vertical', format='int64'),
}

/**
 * 批处理
 */
model BatchRequest {
  requests: [ BatchSubRequest ](name='requests', description='Requests 请求合集', items='{"$ref":"#/definitions/BatchSubRequest"}'),
  resource: string(name='resource', description='支持的资源类型', example='"file"'),
}

/**
 * batch operation response
 */
model BatchResponse {
  responses?: [ BatchSubResponse ](name='responses', description='responses 返回结果合集', items='{"$ref":"#/definitions/BatchSubResponse"}'),
}

/**
 * 
 */
model BatchSubRequest {
  body?: object(name='body', additionalProperties='{"type":"object"}', description='body 子请求的请求参数 json 字符串，可参考对于子请求文档, 当指定了body 必须传headers ： "Content-Type" 对应的类型，目前子请求入参是"application/json"', example='{"drive_id":"101","file_id":"xxxxxx"}'),
  headers?: object(name='headers', additionalProperties='{"type":"string"}', description='headers 请求头，表示body传入数据的类型', example='{"Content-Type":"application/json"}'),
  id: string(name='id', description='id 用于request 和 response关联， 不允许重复', example='"1"'),
  method: string(name='method', description='method', enum='POST, GET, PUT, DELETE, HEAD', example='"POST"'),
  url: string(name='url', description='url 子请求的api path路径， 可参考对于子请求文档', example='/file/get'),
}

/**
 * 
 */
model BatchSubResponse {
  body?: object(name='body', additionalProperties='{"type":"object"}', description='body 子请求的返回结果，可参考对于子请求文档 json 字符串', example='{"drive_id":"101","file_id":"xxxxxx"}'),
  id?: string(name='id', description='id 请求带过来的id, 可以跟 request 进行关联', example='"1"'),
  status?: int64(name='status', description='status 子请求的返回状态码，可参考对于子请求文档', example=200, format='int64'),
}

/**
 * Benefit base info of benefit package
 */
model BenefitBaseResponse {
  benefitId?: string(name='benefit_id', description='权益的唯一标识', example='face_group'),
  benefitMeta?: BenefitMetaResponse(name='benefit_meta'),
  benefitPkgId?: string(name='benefit_pkg_id', description='权益包的唯一标识', example='value_add'),
  name?: string(name='name', description='权益的名称', example='人脸聚类'),
}

/**
 * 权益元数据
 */
model BenefitMeta {
  config?: string(name='config'),
  enabled?: boolean(name='enabled'),
  quota?: int64(name='quota', format='int64'),
}

/**
 * Benefit meta response
 */
model BenefitMetaResponse {
  config?: string(name='config', description='权益的配置', example='"{}"'),
  enabled?: boolean(name='enabled', description='权益的开关', example=false),
  quota?: int64(name='quota', description='权益的配额', example=53687091200, format='int64'),
}

/**
 * Benefit package delivery info
 */
model BenefitPkgDeliveryInfoResponse {
  amount?: int64(name='amount', description='权益包下发的数量', example=100, format='int64'),
  createdAt?: string(name='created_at', description='权益包下发的创建时间', example='2019-08-20T06:51:27.292Z'),
  expireTime?: string(name='expire_time', description='权益包下发的超期时间，is_permanent为false时，返回有效值', example='2019-08-20T06:51:27.292Z'),
  isPermanent?: boolean(name='is_permanent', description='权益包是否永久有效', example=false),
}

/**
 * 打包下载
 */
model CCPArchiveFilesRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  files?: [ FileInfo ](name='files', items='{"$ref":"#/definitions/FileInfo"}'),
  name?: string(name='name', description='file_name', example='ccp.jpg', maxLength=1024, minLength=1),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
}

/**
 * 打包下载response
 */
model CCPArchiveFilesResponse {
  asyncTaskId?: string(name='async_task_id'),
}

/**
 * 
 */
model CCPArchiveRequest {
  Format?: string(name='Format', description='格式类型，如果是uc，使用特殊格式'),
  RequestID?: string(name='RequestID'),
  archiveType?: string(name='archive_type'),
  domainId?: string(name='domain_id'),
  driveId?: string(name='drive_id', description='TODO 增加对ShareID的支持'),
  fileId?: string(name='file_id'),
  password?: string(name='password'),
}

/**
 * 
 */
model CCPArchiveResponse {
  state?: string(name='state'),
}

/**
 * 获取文件夹size信息
 */
model CCPGetDirSizeInfoRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
}

/**
 * 获取文件夹信息
 */
model CCPGetFolderInfoRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
}

/**
 * 获取文件夹信息
 */
model CCPGetFolderInfoResponse {
  totalSize?: int64(name='total_size', description='total_size', example=1024, format='int64'),
  usedSize?: int64(name='used_size', description='used_size', example=1023, format='int64'),
}

/**
 * 获取分享中文件媒体播放地址的请求body
 */
model CCPGetShareLinkVideoPreviewPlayInfoRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  category?: string(name='category', description='category', enum='live_transcoding,  offline_video_transcoding', example='live_transcoding'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id', description='file_id', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  fileIdPath?: string(name='file_id_path'),
  getPreviewUrl?: boolean(name='get_preview_url', description='get_preview_url', example=true),
  getSubtitleInfo?: boolean(name='get_subtitle_info', description='get_subtitle_info', example=true),
  getWithoutUrl?: boolean(name='get_without_url', description='get_without_url', example=true),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  referer?: string(name='referer'),
  shareId: string(name='share_id', description='share_id is required', example='Agg1RL8pw96'),
  signToken?: string(name='sign_token'),
  subtitleLanguageList?: [ string ](name='subtitle_language_list', description='subtitle_language_list, 根据语言获取压制在视频中的字幕, 不传则取所有', example='eng', items='{"type":"string"}'),
  templateId?: string(name='template_id', description='template_id', example='HD'),
  urlExpireSec?: int64(name='url_expire_sec', default=300, description='url_expire_sec', example=15, format='int64', maximum=600, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 获取分享中媒体播放地址response
 */
model CCPGetShareLinkVideoPreviewPlayInfoResponse {
  audioPreviewPlayInfo?: AudioPreviewPlayInfoResponse(name='audio_preview_play_info'),
  category?: string(name='category', description='category'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  shareId?: string(name='share_id', description='share_id', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  videoPreviewPlayInfo?: VideoPreviewPlayInfoResponse(name='video_preview_play_info'),
}

/**
 * 获取转码信息请求
 */
model CCPGetVideoPreviewPlayInfoRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  category?: string(name='category', description='category', enum='live_transcoding,  offline_video_transcoding', example='live_transcoding'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  fileIdPath?: string(name='file_id_path'),
  getMasterUrl?: boolean(name='get_master_url', description='获取master playlist播放地址，仅在quick_video中有效', example=true),
  getPreviewUrl?: boolean(name='get_preview_url', description='get_preview_url', example=true),
  getSubtitleInfo?: boolean(name='get_subtitle_info', description='get_subtitle_info', example=true),
  getWithoutUrl?: boolean(name='get_without_url', description='get_without_url', example=true),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  referer?: string(name='referer'),
  revisionId?: string(name='revision_id', description='revision_id', example='6030dbcce499a7dad4b54ad7aa411e1535c6af40'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='Agg1RL8pw96'),
  signToken?: string(name='sign_token'),
  subtitleLanguageList?: [ string ](name='subtitle_language_list', description='subtitle_language_list, 根据语言获取压制在视频中的字幕, 不传则取所有', example='eng', items='{"type":"string"}'),
  templateId?: string(name='template_id', description='template_id', example='HD'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
}

/**
 * 获取转码信息响应
 */
model CCPGetVideoPreviewPlayInfoResponse {
  audioPreviewPlayInfo?: AudioPreviewPlayInfoResponse(name='audio_preview_play_info'),
  category?: string(name='category', description='category', enum='quick_video,  offline_audio,  live_transcoding,  offline_video', example='quick_video'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  shareId?: string(name='share_id', description='share_id', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  videoPreviewPlayInfo?: VideoPreviewPlayInfoResponse(name='video_preview_play_info'),
}

/**
 * 获取转码播放元信息请求
 */
model CCPGetVideoPreviewPlayMetaRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  category?: string(name='category', description='category', enum='live_transcoding,  offline_video_transcoding', example='live_transcoding'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='Agg1RL8pw96'),
}

/**
 * 获取播放元信息响应
 */
model CCPGetVideoPreviewPlayMetaResponse {
  audioPreviewPlayMeta?: AudioPreviewPlayInfoResponse(name='audio_preview_play_meta'),
  category?: string(name='category', description='category'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  shareId?: string(name='share_id', description='share_id', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  videoPreviewPlayMeta?: VideoPreviewPlayInfoResponse(name='video_preview_play_meta'),
}

/**
 * 触发实时转码
 */
model CCPLiveTranscodeRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  objectPath?: string(name='object_path', description='object_path', example='/86942B7D227C6F357DF9FCE06C8923017681B334_2753102__sha1_dev20001/SD/media-5.ts'),
}

/**
 * CCPLiveTranscodeResponse
 */
model CCPLiveTranscodeResponse {
}

/**
 * 获取视频DRM License
 */
model CCPVideoDRMLicenseRequest {
  drmType?: string(name='drmType', description='drmType', example='widevine,fairplay'),
  licenseRequest?: string(name='licenseRequest', description='licenseRequest', example='xxx'),
}

/**
 * DRM License response
 */
model CCPVideoDRMLicenseResponse {
  data?: string(name='data', description='drm_data', example='xxx'),
  deviceInfo?: string(name='device_info', description='device_info', example='xxx'),
  states?: int64(name='states', description='states', example=0, format='int64'),
}

/**
 * 遍历文件
 */
model CCPWalkFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  all?: boolean(name='all', default=true, description='all', enum='false, true', example=false),
  beforeUpdatedAt?: string(name='before_updated_at', description='before_updated_at', example='2022-10-28T03:12:50.968Z'),
  category?: string(name='category', description='category', enum='image, video, music, doc, other', example='image'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fields?: string(name='fields', description='fields', example='*'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int64(name='limit', default=50, description='limit', example=10, format='int64', maximum=200, minimum=0),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  orderBy?: string(name='order_by', description='order_by', enum='update_time, name', example='name'),
  orderDirection?: string(name='order_direction', description='order_direction', enum='ASC, DESC', example='ASC'),
  parentFileId: string(name='parent_file_id', description='ParentFileID', example='root', maxLength=50, minLength=4, pattern='[a-z0-9.-_]{1,50}'),
  parentFileIdPath?: string(name='parent_file_id_path'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  signToken?: string(name='sign_token'),
  starred?: boolean(name='starred', description='starred', enum='false, true', example=false),
  status?: string(name='status', default='available', description='status', enum='uploading, available', example='available'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 列举文件response
 */
model CCPWalkFileResponse {
  items?: [ BaseCCPFileResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseCCPFileResponse"}', maxItems=100),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
  punishedFileCount?: int64(name='punished_file_count', description='punished_file_count', format='int64'),
}

/**
 * 
 */
model CNameStatus {
  bingdingState: string(name='bingding_state', description='binding state', example='BINDING'),
  legalState: string(name='legal_state', description='legal state', example='NORMAL'),
  remark: string(name='remark', description='remark', example='beian'),
}

/**
 * 
 */
model Callback {
  body?: string(name='body'),
  url?: string(name='url'),
}

/**
 * cancel_share_link request
 */
model CancelShareLinkRequest {
  shareId?: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
}

/**
 * 
 */
model Captcha {
  captcha: string(name='captcha', description='图片验证码，base64格式', example='iVBORw0KGgoAAAANSUhEUgAAAFAAAAAaCAIAAACvsEzwAAABRElEQVR42t3YsQ4CIQwA0CZ+i36Bg5uTo1/gqquDTvf1JwkJqRR7vZYCJ2HClOMBVw5h/i7P9yvU+X8LFFsju728wRNhcQR+gyj27G2GtQGHxy5USaN6PV1n2Qt8Ou6ZKllPJ/MQ4PN0CzXrs9i4jS2dIelKMuBse18vd1zdweHZdnC2V3kwDsm0OnYHMDVLtnQICbZ0XuIpqAamaaMjmGbvOAV0Fmqew7XAmXlV0kqButcYhDs5PqYiGA9dDm6atCK7bpbGx5Jknxszlj5pYR5t8QMX8b5gLMSVCZGfw4svdtHsDqZmPooHJxte5NTCnx3twKvKIhgLcaXrSbP0iGBhIK/99aXlnrQst1/7BajDt7Txxl/rrqvuBOaGJY3Szt4GOBuoka2LhQYw/ic1eyww/5eV95x229IDmqHlS1vdrOjkA5iK2BYUhM2zAAAAAElFTkSuQmCC'),
  captchaFormat: string(name='captcha_format', description='图片格式', example='png'),
  captchaId: string(name='captcha_id', description='图片验证码ID', example='f4690fc255e2fb24c10ede079d3802b4cClRimRh67Q'),
}

/**
 * 
 */
model CcpCallback {
  body?: object(name='body', additionalProperties='{"type":"string"}'),
  url?: string(name='url'),
}

/**
 * 
 */
model CertInfo {
  CertID?: string(name='CertID'),
  certBody: string(name='cert_body', description='cert body', example='xxxxxxxxxxx'),
  certName: string(name='cert_name', description='cert name', example='mysite2020cert'),
  certPrivatekey: string(name='cert_privatekey', description='cert privatekey', example='yyyyyyyyyy'),
}

/**
 * 
 */
model CheckExistResponse {
  isExist: boolean(name='is_exist', description='当前手机号是否存在', example=true),
  phoneNumber: string(name='phone_number', description='待查询的手机号', example='152*****341'),
  phoneRegion?: string(name='phone_region', description='国家编号，默认86，不需要填+号，直接填数字', example='86'),
}

/**
 * 清空回收站
 */
model ClearRecycleBinRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  taskCategory?: string(name='task_category'),
}

/**
 * ClearRecycleBinResponse
 */
model ClearRecycleBinResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id'),
  domainId?: string(name='domain_id', description='domain_id'),
  driveId?: string(name='drive_id', description='drive_id'),
  taskId?: string(name='task_id', description='task_id'),
}

/**
 * 合并文件上传任务
 */
model CompleteFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  lastRevisionId?: string(name='last_revision_id'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id'),
  uploadId?: string(name='upload_id', description='upload_id'),
}

/**
 * complete file response
 */
model CompleteFileResponse {
  actionList?: [ string ](name='action_list', description='action_list', items='{"type":"string"}'),
  autoDeleteLeftSec?: int64(name='auto_delete_left_sec', description='auto_delete_left_sec', example=10000, format='int64'),
  category?: string(name='category', description='category', enum='doc, image, audio, video', example='doc'),
  characteristicHash?: string(name='characteristic_hash', description='CharacteristicHash'),
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  creatorId?: string(name='creator_id', description='creator_id', example='123abc'),
  creatorName?: string(name='creator_name', description='creator_name', example='test_user'),
  creatorType?: string(name='creator_type', description='creator_type', example='User, AliUser'),
  customField1?: string(name='custom_field_1', description='custom_field_1'),
  customField2?: string(name='custom_field_2', description='custom_field_2'),
  customType?: string(name='custom_type', description='custom_type'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode', example='pin'),
  exFieldsInfo?: object(name='ex_fields_info', additionalProperties='{"type":"object"}', description='ex_fields_info'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  filePathType?: string(name='file_path_type', description='TODO 先不在API上透出该字段，file_path_type目前在edm中返回；path type是否在PDS通用逻辑中展示，展示的含义是什么，需要再做分析'),
  hidden?: boolean(name='hidden', description='Hidden
type: boolean', enum='false, true', example=false),
  imageMediaMetadata?: ImageMediaResponse(name='image_media_metadata'),
  investigationStatus?: int64(name='investigation_status', description='InvestigationStatus', format='int64'),
  labels?: [ string ](name='labels', description='labels', example='label1:1, label2:2', items='{"type":"string"}'),
  lastModifierId?: string(name='last_modifier_id', description='last_modifier_id', example='123abc'),
  lastModifierName?: string(name='last_modifier_name', description='last_modifier_name', example='test_user'),
  lastModifierType?: string(name='last_modifier_type', description='last_modifier_type', example='User, AliUser'),
  localCreatedAt?: string(name='local_created_at', description='local_created_at', example='2019-08-20T06:51:27.292Z'),
  localModifiedAt?: string(name='local_modified_at'),
  location?: string(name='location', description='location'),
  meta?: string(name='meta'),
  mimeExtension?: string(name='mime_extension', description='mime_extension', example='mov'),
  mimeType?: string(name='mime_type', description='mime_type', example='video/quicktime'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFileId?: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  punishFlag?: int64(name='punish_flag', description='PunishFlag', format='int64'),
  punishReason?: string(name='punish_reason', description='PunishReason'),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  revisionVersion?: int64(name='revision_version', description='revision_version', example=1024, format='int64'),
  shareId?: string(name='share_id'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  starred?: boolean(name='starred', description='starred
type: boolean', example=false),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  streamLocations?: object(name='stream_locations', additionalProperties='{"type":"string"}'),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='@Deprecated streams url info'),
  syncDeviceFlag?: boolean(name='sync_device_flag', description='sync_device_flag'),
  syncFlag?: boolean(name='sync_flag', description='sync_flag'),
  syncMeta?: string(name='sync_meta', description='sync_meta'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  thumbnailUrls?: object(name='thumbnail_urls', additionalProperties='{"type":"string"}', description='thumbnail_urls'),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
  userTags?: object(name='user_tags', additionalProperties='{"type":"string"}', description='user_tags'),
  videoMediaMetadata?: VideoMediaResponse(name='video_media_metadata'),
  videoPreviewMetadata?: VideoPreviewResponse(name='video_preview_metadata'),
}

/**
 * 
 */
model Condition {
  ipEquals?: IPCondition(name='ip_equals'),
  ipNotEquals?: IPCondition(name='ip_not_equals'),
  stringLike?: StringCondition(name='string_like'),
  stringNotLike?: StringCondition(name='string_not_like'),
}

/**
 * 文件拷贝
 */
model CopyFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  autoRename?: boolean(name='auto_rename', default=false, description='auto_rename
type: boolean', example=false),
  batchId?: string(name='batch_id'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  fileIdPath?: string(name='file_id_path'),
  keepUserTags?: KeepUserTags(name='keep_user_tags'),
  newName?: string(name='new_name', description='new_name', example='ccp.jpg', maxLength=1024, minLength=1),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  toDriveId?: string(name='to_drive_id', description='to_drive_id', example='1', pattern='[0-9]+'),
  toParentFileId: string(name='to_parent_file_id', description='to_parent_file_id', example='root', maxLength=50, minLength=4, pattern='[a-z0-9.-_]{1,50}'),
  toShareId?: string(name='to_share_id', description='to_drive_id', example='1', pattern='[0-9]+'),
}

/**
 * 文件拷贝 response
 */
model CopyFileResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id', example='000e89fb-cf8f-11e9-8ab4-b6e980803a3b'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
}

/**
 * Copy view files
 */
model CopyViewFilesRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  autoRename?: boolean(name='auto_rename', default=false, description='auto_rename
type: boolean', example=false),
  category: string(name='category', description='category', example='"album"'),
  driveFileList?: [ ShareFile ](name='drive_file_list', items='{"$ref":"#/definitions/ShareFile"}'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  toDriveId?: string(name='to_drive_id', description='to_drive_id', example='1', pattern='[0-9]+'),
  toParentFileId: string(name='to_parent_file_id', description='to_parent_file_id', example='root', maxLength=50, minLength=4, pattern='[a-z0-9.-_]{1,50}'),
  toViewId: string(name='to_view_id', description='to_view_id', example='123'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * 
 */
model CorsRule {
  allowedHeader?: [ string ](name='allowed_header', description='AllowedHeader', example='*', items='{"type":"string"}'),
  allowedMethod?: [ string ](name='allowed_method', description='AllowedMethod', example='PUT, GET', items='{"type":"string"}'),
  allowedOrigin?: [ string ](name='allowed_origin', description='AllowedOrigin', example='*', items='{"type":"string"}'),
  exposeHeader?: [ string ](name='expose_header', description='ExposeHeader', example='ETag', items='{"type":"string"}'),
  maxAgeSeconds?: int64(name='max_age_seconds', description='MaxAgeSeconds', example=0, format='int64'),
}

/**
 * 
 */
model CreateAppRequest {
  httpheaders?: map[string]string,
  appName: string(name='app_name', description='App名称', example='图片分享应用', maxLength=128, minLength=1),
  description?: string(name='description', description='App描述', example='测试专用', maxLength=128, minLength=0),
  isThirdParty?: boolean(name='is_third_party', default=false, description='是否是domain私有App', example=false),
  logo: string(name='logo', description='App图标', example='https://app.com/logo.jpg'),
  publicKey: string(name='public_key', description='RSA加密算法的公钥, PEM格式', example='-----BEGIN RSA PUBLIC KEY-----****-----END RSA PUBLIC KEY-----'),
  redirectUri?: string(name='redirect_uri', description='App回调地址', example='https://app.com/callback'),
  scope: [ string ](name='scope', description='App权限列表', enum='FILE.ALL, SHARE.ALL, STORAGEFILE.ALL, STORAGE.ALL, DRIVE.ALL, USER.ALL', items='{"type":"string"}'),
  type: string(name='type', default='WebServer', description='App类型', enum='WebServer, WebBrowser, Native, JWT', example='WebServer'),
}

/**
 * Create custom story request
 */
model CreateCustomizedStoryRequest {
  customLabels?: object(name='custom_labels', additionalProperties='{"type":"object"}', description='custom_labels'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  storyCover?: StoryFile(name='story_cover'),
  storyFiles?: [ StoryFile ](name='story_files', description='story_file_ids', items='{"$ref":"#/definitions/StoryFile"}'),
  storyName?: string(name='story_name', description='story_name', example='"custom"'),
  storySubType?: string(name='story_sub_type', description='story_sub_type', example='"ThisWeekInThePast"'),
  storyType: string(name='story_type', description='story_type', example='"TimeMemory"'),
}

/**
 * 
 */
model CreateDetail {
  createType?: string(name='create_type', description='CreateType'),
  isOverWrite?: boolean(name='is_over_write'),
  srcFileId?: string(name='src_file_id', description='SrcFileID'),
}

/**
 * create domain request
 */
model CreateDomainRequest {
  httpheaders?: map[string]string,
  authConfig?: object(name='auth_config', additionalProperties='{"$ref":"#/definitions/AuthConfig"}', description='登录相关信息', example='{}'),
  authDingdingAppId?: string(name='auth_dingding_app_id', description='钉钉 App Id', example='abc'),
  authDingdingAppSecret?: string(name='auth_dingding_app_secret', description='钉钉 App Secret', example='abc'),
  authDingdingEnable?: boolean(name='auth_dingding_enable', description='启用钉钉认证', example=true),
  authRamAppId?: string(name='auth_ram_app_id', description='RAM App Id', example='abc'),
  authRamAppSecret?: string(name='auth_ram_app_secret', description='RAM App Secret', example='abc'),
  authRamEnable?: boolean(name='auth_ram_enable', description='启用 RAM 认证', example=true),
  dataHashName?: string(name='data_hash_name', description='数据 Hash 算法', example='sha1'),
  description?: string(name='description', description='Domain 描述', example='my test domain'),
  domainName?: string(name='domain_name', description='Domain 名称', example='test_domain'),
  eventFilenameMatches?: string(name='event_filename_matches', description='事件通知 MNS 匹配文件名', example='abc'),
  eventMnsEndpoint?: string(name='event_mns_endpoint', description='事件通知 MNS Endpoint', example='http://abc.mns.cn-shenzhen.aliyuncs.com'),
  eventMnsTopic?: string(name='event_mns_topic', description='事件通知 MNS Topic', example='abc'),
  eventNames?: [ string ](name='event_names', description='事件名列表', example='abc', items='{"type":"string"}'),
  eventRoleArn?: string(name='event_role_arn', description='事件通知 Role Arn'),
  groupSingleDriveEnabled?: boolean(name='group_single_drive_enabled', description='单团队单drive', example=true),
  independentStore?: boolean(name='independent_store'),
  initDriveEnable?: boolean(name='init_drive_enable', description='开启自动初始化 Drive', example=true),
  initDriveSize?: int64(name='init_drive_size', description='自动初始化 Drive 大小', example=1024, format='int64'),
  mode?: string(name='mode', description='Domain 类型', example='StandardMode'),
  parentDomainId?: string(name='parent_domain_id', description='父 Domain ID', example='bj1'),
  pathType?: string(name='path_type', description='Domain 类型', example='CCPPath'),
  publishedAppAccessStrategy?: AppAccessStrategy(name='published_app_access_strategy'),
  sharable?: boolean(name='sharable', description='开启分享', example=true),
  sizeQuota?: int64(name='size_quota', description='逻辑空间quota，默认为-1，无限制，单位为字节', example=1099511627776, format='int64'),
  storeLevel?: string(name='store_level', description='存储级别', example='Standard'),
  storeRegionList?: [ string ](name='store_region_list', description='存储 Region 列表', example='cn-hangzhou', items='{"type":"string"}'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userCountQuota?: int64(name='user_count_quota', description='用户数quota，默认为-1，无限制', example=100, format='int64'),
  userSingleDriveEnabled?: boolean(name='user_single_drive_enabled', description='单用户单drive', example=true),
}

/**
 * create domain response
 */
model CreateDomainResponse {
  apiCname?: string(name='api_cname', description='Domain APICName', example='"pdsapi.yoursite.com"'),
  appCname?: string(name='app_cname', description='Domain AppCName', example='"pdsapp.yoursite.com"'),
  appConfig?: AppConfig(name='app_config'),
  archiveConfig?: ArchiveConfig(name='archive_config'),
  archiveFilesEnable?: boolean(name='archive_files_enable', description='打包下载配置'),
  auditLogConfig?: AuditLogConfig(name='audit_log_config'),
  authCname?: string(name='auth_cname', description='Domain AuthCName', example='"pdsauth.yoursite.com"'),
  authConfig?: object(name='auth_config', additionalProperties='{"$ref":"#/definitions/AuthConfig"}', description='登录相关信息', example='{}'),
  authDingdingAppId?: string(name='auth_dingding_app_id', description='钉钉 App Id', example='abc'),
  authDingdingAppSecret?: string(name='auth_dingding_app_secret', description='钉钉 App Secret', example='abc'),
  authDingdingEnable?: boolean(name='auth_dingding_enable', description='是否开启了钉钉认证', example=true),
  authRamAppId?: string(name='auth_ram_app_id', description='RAM App Id', example='abc'),
  authRamAppSecret?: string(name='auth_ram_app_secret', description='RAM App Secret', example='abc'),
  authRamEnable?: boolean(name='auth_ram_enable', description='是否开启了 RAM 认证', example=true),
  benefits?: object(name='benefits', additionalProperties='{"$ref":"#/definitions/BenefitMetaResponse"}'),
  createdAt?: string(name='created_at', description='Domain 创建时间', example='"2019-08-31T12:58:31.137Z"'),
  dataHashName?: string(name='data_hash_name', description='数据 Hash 算法', example='sha1'),
  defaultSuperAdminConfig?: DomainSuperAdminConfig(name='default_super_admin_config'),
  description?: string(name='description', description='Domain 描述', example='my test domain'),
  domainId?: string(name='domain_id', description='Domain ID', example='sz111'),
  domainName?: string(name='domain_name', description='Domain 描述', example='my test domain'),
  endpoints?: DomainEndpointsResponse(name='endpoints'),
  enterpriseCustomizedLogin?: boolean(name='enterprise_customized_login', description='企业文件管理专属登录开关'),
  eventFilenameMatches?: string(name='event_filename_matches', description='事件通知 MNS 匹配文件名', example='abc'),
  eventMnsEndpoint?: string(name='event_mns_endpoint', description='事件通知 MNS Endpoint', example='http://abc.mns.cn-shenzhen.aliyuncs.com'),
  eventMnsTopic?: string(name='event_mns_topic', description='事件通知 MNS Topic', example='abc'),
  eventNames?: [ string ](name='event_names', description='事件名列表', example='abc', items='{"type":"string"}'),
  eventRoleArn?: string(name='event_role_arn', description='事件通知 Role Arn'),
  expireTime?: int64(name='expire_time', description='预付费domain过期时间', format='int64'),
  fileCategory?: object(name='file_category', additionalProperties='{"type":"string"}'),
  groupConfig?: GroupConfig(name='group_config'),
  groupSingleDriveEnabled?: boolean(name='group_single_drive_enabled'),
  initDriveEnable?: boolean(name='init_drive_enable', description='是否开启了自动初始化 Drive', example=true),
  initDriveSize?: int64(name='init_drive_size', description='自动初始化 Drive 大小', example=1024, format='int64'),
  initDriveStoreId?: string(name='init_drive_store_id', description='自动初始化 Drive 所用 Store ID', example='1'),
  mode?: string(name='mode', description='Domain 类型', example='StandardMode'),
  multiRevisionConfig?: BaseMultiRevisionConfigResponse(name='multi_revision_config'),
  officeEditConfig?: OfficeEditConfig(name='office_edit_config'),
  officePreviewConfig?: OfficePreviewConfig(name='office_preview_config'),
  parallelUploadEnabled?: boolean(name='parallel_upload_enabled'),
  parentDomainId?: string(name='parent_domain_id', description='Parent Domain ID', example='sz111'),
  pathType?: string(name='path_type', description='Domain 类型', example='CCPPath'),
  prepaidPackage?: string(name='prepaid_package', description='预付费套餐'),
  publishedAppAccessStrategy?: AppAccessStrategy(name='published_app_access_strategy'),
  recycleBinConfig?: RecycleBinConfig(name='recycle_bin_config'),
  roleConfig?: RoleConfig(name='role_config'),
  serviceCode?: string(name='service_code', description='Domain ServiceCode', example='"edm"'),
  sharable?: boolean(name='sharable', description='是否开启了共享', example=true),
  shareDetail?: ShareDetailResponse(name='share_detail'),
  shareLinkDetail?: ShareLinkDetailResponse(name='share_link_detail'),
  shareLinkEnabled?: boolean(name='share_link_enabled', description='是否开启了分享', example=true),
  sizeQuota?: int64(name='size_quota', description='容量配额', format='int64'),
  sizeQuotaUsed?: int64(name='size_quota_used', format='int64'),
  spiInstanceId?: string(name='spi_instance_id', description='SPI 实例 id'),
  status?: int64(name='status', description='domain状态：创建中，正常，已过期', format='int64'),
  storeLevel?: string(name='store_level', description='存储级别', example='Standard'),
  storeRegionList?: [ string ](name='store_region_list', description='存储 Region 列表', example='cn-hangzhou', items='{"type":"string"}'),
  subdomainConfig?: SubdomainConfig(name='subdomain_config'),
  updatedAt?: string(name='updated_at', description='Domain 更新时间', example='"2019-08-31T12:58:31.137Z"'),
  usedSize?: int64(name='used_size', description='逻辑空间使用量，单位为字节', example=1073741824, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userCountQuota?: int64(name='user_count_quota', description='用户数配额', format='int64'),
  userSingleDriveEnabled?: boolean(name='user_single_drive_enabled', description='user和group只能有一个drive的开关'),
  videoPreviewAppConfig?: VideoPreviewAppConfig(name='video_preview_app_config'),
  videoPreviewConfig?: VideoPreviewConfig(name='video_preview_config'),
  watermarkConfig?: BaseWatermarkConfigResponse(name='watermark_config'),
}

/**
 * create drive request
 */
model CreateDriveRequest {
  category?: string(name='category'),
  default?: boolean(name='default', default=false, description='是否默认drive, 只允许设置一个默认drive', example=true),
  description?: string(name='description', description='描述信息', example='ccp team drive', maxLength=1024),
  driveName: string(name='drive_name', description='Drive 名称', example='ccpdrive', maxLength=1024),
  driveType?: string(name='drive_type', default='normal', description='Drive类型', enum='normal, large', example='normal'),
  encryptMode?: string(name='encrypt_mode'),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  owner: string(name='owner', description='所属者', example='ccp-001'),
  ownerType: string(name='owner_type', description='所属者', example='ccp-001'),
  relativePath?: string(name='relative_path', description='domain的PathType为OSSPath时必选。 Drive存储基于store的相对路径', example='/d/e/f/'),
  status?: string(name='status', default='enabled', description='状态', enum='disabled, enabled', example='enabled'),
  storeId?: string(name='store_id', description='StoreID , domain的PathType为OSSPath时必选', example='store_id'),
  subdomainId?: string(name='subdomain_id', description='Subdomain ID', example='hz-123'),
  totalSize?: int64(name='total_size', default=-1, description='总大小,单位Byte [如果设置 -1 代表不限制]', example=1024, format='int64'),
}

/**
 * Create drive response
 */
model CreateDriveResponse {
  domainId?: string(name='domain_id', description='Domain ID', example='hz999'),
  driveId?: string(name='drive_id', description='Drive ID', example='123'),
}

/**
 * 创建文件
 */
model CreateFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  autoRename?: boolean(name='auto_rename'),
  category?: string(name='category', description='category'),
  checkNameMode?: string(name='check_name_mode', default='ignore', description='check_name_mode', enum='ignore, auto_rename, refuse'),
  checkParentFileIdPath?: string(name='check_parent_file_id_path'),
  contentHash?: string(name='content_hash', description='content_hash', example='7C4A8D09CA3762AF61E59520943DC26494F8941B'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentMd5?: string(name='content_md5', description='ContentMd5', example='E10ADC3949BA59ABBE56E057F20F883E'),
  contentType?: string(name='content_type', description='ContentType', example='application/json'),
  createReason?: string(name='create_reason'),
  customField1?: string(name='custom_field_1'),
  customField2?: string(name='custom_field_2'),
  customType?: string(name='custom_type'),
  description?: string(name='description', description='description', example='file description', maxLength=1024, minLength=0),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode'),
  fileId?: string(name='file_id', description='file_id'),
  forceUploadToLocation?: boolean(name='force_upload_to_location', description='force_upload_to_location'),
  hidden?: boolean(name='hidden', description='hidden', enum='true, false', example=false),
  imageMediaMetadata?: ImageMediaMetadata(name='image_media_metadata'),
  labels?: [ string ](name='labels', description='labels', example='label1, label2', items='{"type":"string"}'),
  lastRevisionId?: string(name='last_revision_id'),
  lastUpdatedAt?: string(name='last_updated_at', description='last_updated_at', example='2019-08-20T06:51:27.292Z'),
  localCreatedAt?: string(name='local_created_at', description='local_created_at', example='2019-08-20T06:51:27.292Z'),
  localModifiedAt?: string(name='local_modified_at'),
  location?: string(name='location', description='location'),
  meta?: string(name='meta'),
  name: string(name='name', description='Name', example='ccp.jpg', maxLength=1024, minLength=1),
  needMergePeriodRevision?: boolean(name='need_merge_period_revision'),
  parallelUpload?: boolean(name='parallel_upload'),
  parentFileId: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=4, pattern='[a-z0-9]{1,50}'),
  parentFileIdPath?: string(name='parent_file_id_path'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  preHash?: string(name='pre_hash', description='pre_hash', example='E10ADC3949BA59ABBE56E057F20F883E'),
  proofCode?: string(name='proof_code', description='proof_code'),
  proofSeed?: string(name='proof_seed', description='proof_seed'),
  proofVersion?: string(name='proof_version', description='proof_version', enum='v1'),
  shareId?: string(name='share_id', description='share_id
example'),
  size?: int64(name='size', description='Size', format='int64', minimum=0),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/FileStreamInfo"}', description='streams_info'),
  type: string(name='type', description='Type', enum='file, folder', example='file'),
  uploadType?: string(name='upload_type'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
  userTags?: [ UserTag ](name='user_tags', description='user_tags', items='{"$ref":"#/definitions/UserTag"}'),
  videoMediaMetadata?: VideoMediaMetadata(name='video_media_metadata'),
}

/**
 * Create file response
 */
model CreateFileResponse {
  domainId?: string(name='domain_id', description='domain_id', example='domain', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode', example='pin'),
  exist?: boolean(name='exist', description='exist
type: boolean', example=false),
  fileId?: string(name='file_id', description='file_id', example='5d79206586bb5dd69fb34c349282718146c55da7', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  fileName?: string(name='file_name', description='file_name', example='test.txt', maxLength=255, minLength=1),
  location?: string(name='location', description='location'),
  parentFileId?: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', example='[', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  rapidUpload?: boolean(name='rapid_upload', description='rapid_upload
type: boolean', example=false),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  shareId?: string(name='share_id', description='share_id', example='xyz'),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  streamsUploadInfo?: object(name='streams_upload_info', additionalProperties='{"$ref":"#/definitions/StreamUploadInfo"}', description='streams_upload_info'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
}

/**
 * create identity to benefit pkg mapping request
 */
model CreateIdentityToBenefitPkgMappingRequest {
  amount?: int64(name='amount', description='权益包数量', example=1, format='int64'),
  benefitPkgId: string(name='benefit_pkg_id', description='权益包的唯一标识', example='"40cb7794c9294"'),
  customBenefitMeta?: object(name='custom_benefit_meta', additionalProperties='{"$ref":"#/definitions/CustomBenefitMeta"}', description='实体权益包关联的自定义Meta'),
  deliveryId?: string(name='delivery_id', description='权益下发的唯一标识', example='"123ace93f0123d"'),
  domainId?: string(name='domain_id', description='domain ID', example='sz100'),
  expireTime?: int64(name='expire_time', description='权益包超期时间的时间戳，单位为毫秒', example=1633167071000, format='int64'),
  identityId: string(name='identity_id', description='实体的唯一标识，如 userID', example='"user1"'),
  identityType: string(name='identity_type', description='实体类型，当前支持user类型实体', example='user'),
  nonceId?: string(name='nonce_id', description='nonce ID', example='"123ace93f0123d"'),
}

/**
 * 
 */
model CreateIdentityToBenefitPkgMappingResponse {
}

/**
 * 
 */
model CreateShareLinkPermissionRequest {
  creatable?: boolean(name='creatable', description='允许上传', example=true),
  disableDownload?: boolean(name='disable_download', description='禁止下载分享中的文件', example=true),
  disablePreview?: boolean(name='disable_preview', description='禁止预览分享中的文件', example=true),
  disableSave?: boolean(name='disable_save', description='禁止转存分享中的文件', example=true),
  disableVisible?: boolean(name='disable_visible', description='分享中的文件不可见', example=true),
  downloadLimit?: int64(name='download_limit', description='分享下载次数限制', example=10, format='int64'),
  officeEditable?: boolean(name='office_editable', description='允许在线编辑文档', example=true),
  previewLimit?: int64(name='preview_limit', description='分享预览次数限制', example=10, format='int64'),
  requireLogin?: boolean(name='require_login', description='企业内(domain)登录后才允许使用分享', example=true),
  saveDownloadLimit?: int64(name='save_download_limit', description='分享转存和下载的总次数限制', example=10, format='int64'),
  saveLimit?: int64(name='save_limit', description='分享转存次数限制', example=10, format='int64'),
}

/**
 * create_share_link request
 */
model CreateShareLinkRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  category?: string(name='category', description='category', example='file'),
  comments?: string(name='comments', description='comments', example='xxx'),
  creatable?: boolean(name='creatable', description='允许上传', example=true),
  creatableFileIdList?: [ string ](name='creatable_file_id_list', description='允许上传的目录列表', example='xxx', items='{"type":"string"}'),
  description?: string(name='description', description='description', example='desc'),
  disableDownload?: boolean(name='disable_download', description='禁止下载分享中的文件', example=true),
  disablePreview?: boolean(name='disable_preview', description='禁止预览分享中的文件', example=true),
  disableSave?: boolean(name='disable_save', description='禁止转存分享中的文件', example=true),
  disableVisible?: boolean(name='disable_visible', description='分享中的文件不可见', example=true),
  downloadLimit?: int64(name='download_limit', description='分享下载次数限制', example=10, format='int64'),
  driveFileList?: [ ShareFile ](name='drive_file_list', description='多drive使用该字段，view分享支持跨drive，使用该字段，如果为空，则是分享view下所有文件', items='{"$ref":"#/definitions/ShareFile"}'),
  driveId?: string(name='drive_id', description='单drive使用以下字段，文件共享目前使用该字段
drive_id', example='1', pattern='[0-9]+'),
  enableFileChangedNotify?: boolean(name='enable_file_changed_notify', description='enable_file_changed_notify', example=true),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z', format='date-time'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  fileIdList?: [ string ](name='file_id_list', description='file_id_list', example='5d5b846942cf94fa72324c14a4bda34e81da635d', items='{"type":"string"}'),
  filePathList?: [ string ](name='file_path_list', description='file_path_list', example='/a/', items='{"type":"string"}'),
  filterGroup?: string(name='filter_group', description='filter_group', example='vip1'),
  officeEditable?: boolean(name='office_editable', description='允许在线编辑文档', example=true),
  previewLimit?: int64(name='preview_limit', description='分享预览次数限制', example=10, format='int64'),
  referer?: string(name='referer'),
  requireLogin?: boolean(name='require_login', description='企业内(domain)登录后才允许使用分享', example=true),
  saveDownloadLimit?: int64(name='save_download_limit', description='分享转存和下载的总次数限制', example=10, format='int64'),
  saveLimit?: int64(name='save_limit', description='分享转存次数限制', example=10, format='int64'),
  shareAllFiles?: boolean(name='share_all_files', description='是否分享整个drive中的文件，仅文件分享才有效，true时file_id_list字段无效', example=true),
  shareIcon?: string(name='share_icon', description='share_icon', example='xxx'),
  shareName?: string(name='share_name', description='share_name', example='name'),
  sharePwd?: string(name='share_pwd', description='share_pwd', example='12ABcd'),
  userId?: string(name='user_id', description='user_id, only admin or aksk can set', example='user01'),
  viewId?: string(name='view_id', description='view_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
}

/**
 * create_share_link response
 */
model CreateShareLinkResponse {
  accessCount?: int64(name='access_count', description='access_count', example=1, format='int64'),
  category?: string(name='category', description='Category', example='xxx'),
  comments?: string(name='comments', description='comments', example='xxx'),
  creatable?: boolean(name='creatable', description='允许上传', example=true),
  creatableFileIdList?: [ string ](name='creatable_file_id_list', description='允许上传的目录列表', example='xxx', items='{"type":"string"}'),
  createdAt?: string(name='created_at', description='created_at', example='2006-01-02T15:04:05.999Z', format='date-time'),
  creator?: string(name='creator', description='creator', example='xxx'),
  description?: string(name='description', description='description', example='desc'),
  disableDownload?: boolean(name='disable_download', description='禁止下载分享中的文件', example=true),
  disablePreview?: boolean(name='disable_preview', description='禁止预览分享中的文件', example=true),
  disableSave?: boolean(name='disable_save', description='禁止转存分享中的文件', example=true),
  disableVisible?: boolean(name='disable_visible', description='分享中的文件不可见', example=true),
  downloadCount?: int64(name='download_count', description='下载次数', example=1, format='int64'),
  downloadLimit?: int64(name='download_limit', description='分享下载次数限制', example=10, format='int64'),
  driveFileList?: [ ShareFile ](name='drive_file_list', description='file_list', example='[object Object], [object Object]', items='{"$ref":"#/definitions/ShareFile"}'),
  driveId?: string(name='drive_id', description='drive_id', example='1'),
  enableFileChangedNotify?: boolean(name='enable_file_changed_notify', description='enable_file_changed_notify', example=true),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z', format='date-time'),
  expired?: boolean(name='expired', description='expired', example=false),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  fileIdList?: [ string ](name='file_id_list', description='file_id_list', example='5d5b846942cf94fa72324c14a4bda34e81da635d, file_id_2', items='{"type":"string"}'),
  filePathList?: [ string ](name='file_path_list', description='file_id_list', example='/SD2/, /HD2/', items='{"type":"string"}'),
  isSubscribed?: boolean(name='is_subscribed', description='is_subscribed', example=true),
  numOfSubscribers?: int64(name='num_of_subscribers', description='num_of_subscribers', example=7, format='int64'),
  officeEditable?: boolean(name='office_editable', description='允许在线编辑文档', example=true),
  previewCount?: int64(name='preview_count', description='preview_count', example=1, format='int64'),
  previewLimit?: int64(name='preview_limit', description='分享预览次数限制', example=10, format='int64'),
  reportCount?: int64(name='report_count', description='举报次数', example=1, format='int64'),
  requireLogin?: boolean(name='require_login', description='企业内(domain)登录后才允许使用分享', example=true),
  saveCount?: int64(name='save_count', description='转存次数', example=1, format='int64'),
  saveDownloadLimit?: int64(name='save_download_limit', description='分享转存和下载的总次数限制', example=10, format='int64'),
  saveLimit?: int64(name='save_limit', description='分享转存次数限制', example=10, format='int64'),
  shareAllFiles?: boolean(name='share_all_files', description='是否分享整个drive中的文件，仅文件分享才有效，true时file_id_list字段无效', example=true),
  shareIcon?: string(name='share_icon', description='share_icon', example='xxx'),
  shareId?: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
  shareMsg?: string(name='share_msg', description='share_msg', example='复制这条消息并打开app，即可跳转到对应的分享页面'),
  shareName?: string(name='share_name', description='share_name', example='name'),
  sharePolicy?: string(name='share_policy', description='share_policy', enum='url, msg', example='url'),
  sharePwd?: string(name='share_pwd', description='share_pwd', example='12ABcd'),
  shareUrl?: string(name='share_url', description='share_url', example='https://www.aliyundrive.com/sharelinks/index/abcdefghi'),
  status?: string(name='status', description='status', example='xxx'),
  updatedAt?: string(name='updated_at', description='updated_at', example='2006-01-02T15:04:05.999Z', format='date-time'),
  videoPreviewCount?: int64(name='video_preview_count', description='音视频播放次数', example=1, format='int64'),
  viewId?: string(name='view_id', description='ViewID', example='xxx'),
}

/**
 * create share request
 */
model CreateShareRequest {
  description?: string(name='description', description='description', example='share description'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z'),
  owner: string(name='owner', description='owner', example='abc'),
  ownerType?: string(name='owner_type', description='owner_type'),
  permissions?: [ string ](name='permissions', description='permissions', example='', items='{"type":"string"}'),
  shareFileId?: string(name='share_file_id', description='share_file_id'),
  shareFilePath?: string(name='share_file_path', description='share_file_path'),
  shareName?: string(name='share_name', description='share_name', example='share'),
  sharePolicy?: [ SharePermissionPolicy ](name='share_policy', description='share create policy

share_policy', items='{"$ref":"#/definitions/SharePermissionPolicy"}'),
  status?: string(name='status', description='status', enum='enabled, disabled', example='enabled'),
}

/**
 * Create share response
 */
model CreateShareResponse {
  domainId?: string(name='domain_id', description='domain_id', example='domain-1'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6'),
}

/**
 * create similar image cluster task request
 */
model CreateSimilarImageClusterTaskRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
}

/**
 * Create story request
 */
model CreateStoryRequest {
  address?: Address(name='address'),
  customId?: string(name='custom_id', description='custom_id'),
  customLabels?: object(name='custom_labels', additionalProperties='{"type":"object"}', description='custom_labels'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  maxImageCount?: int64(name='max_image_count', description='max_image_count', example=100, format='int64'),
  minImageCount?: int64(name='min_image_count', description='min_image_count', example=1, format='int64'),
  storyEndTime?: string(name='story_end_time', description='story_end_time', example='"2199-01-01T00:00:01.544Z"'),
  storyId?: string(name='story_id', description='story_id'),
  storyName?: string(name='story_name', description='story_name', example='"custom"'),
  storyStartTime?: string(name='story_start_time', description='story_start_time', example='"2020-11-10T00:00:01.544Z"'),
  storySubType?: string(name='story_sub_type', description='story_sub_type', example='"storySubType"'),
  storyType: string(name='story_type', description='story_type', example='"TimeMemory"'),
}

/**
 * 
 */
model CreateSubdomainRequest {
  description?: string(name='description', description='描述', example='"描述-1"'),
  groupSingleDriveEnabled?: boolean(name='group_single_drive_enabled', description='单团队单drive', example=true),
  name: string(name='name', description='名称，注意该字段会校验重名的subdomain', example='"subdomain-1"'),
  totalSize?: int64(name='total_size', description='逻辑空间quota，默认为-1，无限制，单位为字节', example=1099511627776, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userQuota?: int64(name='user_quota', description='用户数quota，默认为-1，无限制', example=100, format='int64'),
  userSingleDriveEnabled?: boolean(name='user_single_drive_enabled', description='单用户单drive', example=true),
}

/**
 * 
 */
model CreateSubdomainResponse {
  subdomainId: string(name='subdomain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
}

/**
 * Create view request
 */
model CreateViewRequest {
  category: string(name='category', description='category', example='"album"'),
  description?: string(name='description', description='description', example='"abc"'),
  name: string(name='name', description='name', example='"abc"'),
  owner: string(name='owner', description='owner', example='"123"'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
}

/**
 * 
 */
model CroppingBoundary {
  height?: int64(name='height', format='int64'),
  left?: int64(name='left', format='int64'),
  top?: int64(name='top', format='int64'),
  width?: int64(name='width', format='int64'),
}

/**
 * 
 */
model CroppingSuggestionItem {
  aspectRatio?: string(name='aspect_ratio'),
  croppingBoundary?: CroppingBoundary(name='cropping_boundary'),
  score?: double(name='score', format='double'),
}

/**
 * 
 */
model CustomBenefitMeta {
  config?: string(name='config'),
  coverLowerLevel?: boolean(name='cover_lower_level'),
  enabled?: boolean(name='enabled'),
  quota?: int64(name='quota', format='int64'),
}

/**
 * 
 */
model CustomBenefitMetaRequest {
  enabled?: boolean(name='enabled'),
}

/**
 * 
 */
model CustomSideLinkConfig {
  icon?: string(name='icon'),
  link?: string(name='link'),
  text?: string(name='text'),
}

/**
 * 
 */
model DataBoxPrivileges {
  featureAttrId?: string(name='feature_attr_id', description='feature_attr_id'),
  featureId?: string(name='feature_id', description='feature_id'),
  quota?: int64(name='quota', description='quota', format='int64'),
}

/**
 * 
 */
model DataCName {
  dataCname: string(name='data_cname', description='datacname', example='pdsdata-cn-hangzhou.yoursite.com'),
  location: string(name='location', description='data location', example='cn-hangzhou'),
}

/**
 * 
 */
model DeleteAppRequest {
  httpheaders?: map[string]string,
  appId: string(name='app_id', description='App ID', example='CNMrhxwPJHAReExa'),
}

/**
 * 
 */
model DeleteBizCNameAndCertRequest {
  httpheaders?: map[string]string,
  bizCname?: string(name='biz_cname', description='api cname', example='api.yoursite.com'),
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='vpc', example=true),
}

/**
 * 
 */
model DeleteBizCNameCertRequest {
  httpheaders?: map[string]string,
  bizCname?: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  certId?: string(name='cert_id', description='cert id', example='aa-bb-cc-dd'),
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='is vpc', example=false),
}

/**
 * 
 */
model DeleteDataCNameAndCertRequest {
  httpheaders?: map[string]string,
  dataCname: string(name='data_cname', description='cn-shanghai data cname', example='cn-beijing-data.yoursite.com'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  location: string(name='location', description='location', example='cn-beijing'),
}

/**
 * 
 */
model DeleteDetail {
  srcParentFileId?: string(name='src_parent_file_id', description='SrcParentFileID'),
  tgtParentFileId?: string(name='tgt_parent_file_id', description='TgtParentFileID'),
}

/**
 * delete domain request
 */
model DeleteDomainRequest {
  httpheaders?: map[string]string,
  domainId: string(name='domain_id', description='Domain ID', example='sz111'),
}

/**
 * Delete drive request
 */
model DeleteDriveRequest {
  driveId: string(name='drive_id', description='Drive ID', example='123'),
  subdomainId?: string(name='subdomain_id', description='Subdomain ID', example='hz-123'),
}

/**
 * delete drive response
 */
model DeleteDriveResponse {
}

/**
 * 删除文件请求
 */
model DeleteFileRequest {
  checkFolderEmpty?: boolean(name='check_folder_empty'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id'),
  fileIdPath?: string(name='file_id_path'),
  permanently?: boolean(name='permanently', default=false, description='permanently
type: false', example=false),
  shareId?: string(name='share_id'),
}

/**
 * 删除文件 response
 */
model DeleteFileResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id', example='000e89fb-cf8f-11e9-8ab4-b6e980803a3b'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
}

/**
 * 删除文件 user_tags 字段
 */
model DeleteFileUserTagsRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  keyList?: [ string ](name='key_list', description='key_list', items='{"type":"string"}'),
}

/**
 * 删除文件 user tags response
 */
model DeleteFileUserTagsResponse {
}

/**
 * 批量删除文件请求
 */
model DeleteFilesRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileIdList: [ string ](name='file_id_list', description='file_id_list', example='', items='{"type":"string"}', maxItems=100),
  shareId?: string(name='share_id', description='share_id'),
}

/**
 * 批量删除文件 response
 */
model DeleteFilesResponse {
  deletedFileIdList?: [ string ](name='deleted_file_id_list', description='deleted_file_id_list', example='', items='{"type":"string"}'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
}

/**
 * delete identity to benefit pkg mapping request
 */
model DeleteIdentityToBenefitPkgMappingRequest {
  benefitPkgId: string(name='benefit_pkg_id', description='权益包的唯一标识', example='"40cb7794c9294"'),
  domainId?: string(name='domain_id', description='domain ID', example='sz100'),
  identityId: string(name='identity_id', description='实体的唯一标识，如 userID', example='"user1"'),
  identityType: string(name='identity_type', description='实体类型，当前支持user类型实体', example='user'),
}

/**
 * 
 */
model DeleteIdentityToBenefitPkgMappingResponse {
}

/**
 * delete locationCluster request
 */
model DeleteLocationDateClusterRequest {
  clusterId?: string(name='cluster_id'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
}

/**
 * 删除历史版本元数据
 */
model DeleteRevisionRequest {
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  revisionId: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
}

/**
 * 删除版本response
 */
model DeleteRevisionResponse {
}

/**
 * delete share request
 */
model DeleteShareRequest {
  shareId: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6'),
}

/**
 * delete story request
 */
model DeleteStoryRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  storyId: string(name='story_id', description='story_id', example='"Story-uuid"'),
}

/**
 * 
 */
model DeleteSubdomainRequest {
  subdomainId: string(name='subdomain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
}

/**
 * 
 */
model DeleteSubdomainResponse {
  subdomainId: string(name='subdomain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
}

/**
 * Delete view request
 */
model DeleteViewRequest {
  category: string(name='category', description='category', example='"album"'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * 
 */
model DingSyncConfig {
  cron?: string(name='cron'),
  enabled?: boolean(name='enabled'),
}

/**
 * 
 */
model DomainBaseInfoLogDetail {
  name?: string(name='name', description='name'),
}

/**
 * 
 */
model DomainBuildClient {
  copyright?: string(name='copyright'),
  name?: string(name='name'),
}

/**
 * 
 */
model DomainCNameResponse {
  dataCnameList: [ DataCName ](name='data_cname_list', description='data cname list', items='{"$ref":"#/definitions/DataCName"}'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
}

/**
 * 
 */
model DomainCnameInfoLogDetail {
  certName?: string(name='cert_name', description='cert_name'),
  cname?: string(name='cname', description='cname'),
}

/**
 * 
 */
model DomainEndpointsResponse {
  apiEndpoint?: string(name='api_endpoint'),
  apiVpcEndpoint?: string(name='api_vpc_endpoint'),
  appEndpoint?: string(name='app_endpoint'),
  authEndpoint?: string(name='auth_endpoint'),
  mgmtEndpoint?: string(name='mgmt_endpoint'),
  storeList?: [ BaseStoreInfoResponse ](name='store_list', items='{"$ref":"#/definitions/BaseStoreInfoResponse"}'),
  vaStoreList?: [ BaseStoreInfoResponse ](name='va_store_list', items='{"$ref":"#/definitions/BaseStoreInfoResponse"}'),
  webOfficeEndpointList?: [ string ](name='web_office_endpoint_list', items='{"type":"string"}'),
}

/**
 * 
 */
model DomainFileConfigDetail {
  allowUploadCustomFileExtList?: [ string ](name='allow_upload_custom_file_ext_list', items='{"type":"string"}'),
  allowUploadFileCategoryList?: [ string ](name='allow_upload_file_category_list', items='{"type":"string"}'),
  recycleBinAutoDeleteEnabled?: boolean(name='recycle_bin_auto_delete_enabled'),
  recycleBinAutoDeleteKeepSecond?: int64(name='recycle_bin_auto_delete_keep_second', format='int64'),
  sameNameFileUploadMode?: string(name='same_name_file_upload_mode'),
  singleFileUploadSizeLimit?: int64(name='single_file_upload_size_limit', format='int64'),
  webClientDownloadMode?: string(name='web_client_download_mode'),
}

/**
 * domain get request
 */
model DomainGetRequest {
  fields?: string(name='fields', description='fields,需要获取的属性字段,英文逗号分隔,*表示获取所有fields支持的枚举属性字段,为空不获取任何枚举属性字段', example='file_category'),
  getShareDetail?: boolean(name='get_share_detail', description='是否获取share/share_link详情', example=false),
  mergeParent?: boolean(name='merge_parent', description='是否 merge parent 配置'),
}

/**
 * 
 */
model DomainSeniorConfig {
  clientDownloadEnable?: boolean(name='client_download_enable', description='桌面端管理'),
  cspFrameAncestors?: string(name='csp_frame_ancestors', description='安全设置'),
  customLoginAppid?: string(name='custom_login_appid', description='自定义登录页面'),
  customLoginUrl?: string(name='custom_login_url'),
  customLogoutUrl?: string(name='custom_logout_url'),
  customSideLinkList?: [ CustomSideLinkConfig ](name='custom_side_link_list', description='自定义链接', items='{"$ref":"#/definitions/CustomSideLinkConfig"}'),
  homePageBgImageUrl?: string(name='home_page_bg_image_url', description='界面设置'),
  homePageFooter?: string(name='home_page_footer'),
  homePageFooter2?: string(name='home_page_footer2'),
  homePageSlogan?: string(name='home_page_slogan'),
  refererEnable?: boolean(name='referer_enable'),
  wxTxtList?: [ WxTrustedDomainConfig ](name='wx_txt_list', items='{"$ref":"#/definitions/WxTrustedDomainConfig"}'),
}

/**
 * 
 */
model DomainSuperAdminConfig {
  extra?: string(name='extra'),
  identity?: string(name='identity'),
  phoneNumber?: string(name='phone_number'),
  phoneRegion?: string(name='phone_region'),
  type?: string(name='type'),
  userId?: string(name='user_id'),
}

/**
 * domain update name request
 */
model DomainUpdateNameRequest {
  httpheaders?: map[string]string,
  domainId: string(name='domain_id', description='Domain ID', example='sz111'),
  name: string(name='name', description='Domain 名称', example='test_domain'),
}

/**
 * 下载文件请求body
 */
model DownloadRequest {
  DriveID?: string(name='DriveID', description='drive id', example='1'),
  FileID: string(name='FileID', description='file id', example='5d79206586bb5dd69fb34c349282718146c55da7'),
  ImageThumbnailProcess?: string(name='ImageThumbnailProcess', description='in: query
image_thumbnail_process', example='image/resize,m_fill,h_128,w_128,limit_0'),
  OfficeThumbnailProcess?: string(name='OfficeThumbnailProcess', description='office_thumbnail_process', example='image/resize,w_200'),
  RevisionID?: string(name='RevisionID', description='revision id', example='6030dbcce499a7dad4b54ad7aa411e1535c6af40'),
  ShareID?: string(name='ShareID', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  VideoThumbnailProcess?: string(name='VideoThumbnailProcess', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  fileIdPath?: string(name='file_id_path'),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  referer?: string(name='referer'),
  signToken?: string(name='sign_token'),
}

/**
 * 
 */
model DriveLogDetail {
  name?: string(name='name', description='name', example='abc'),
  ownerId?: string(name='owner_id', description='owner_id', example='123'),
  ownerName?: string(name='owner_name', description='owner_name', example='user2'),
  ownerType?: string(name='owner_type', description='owner_type', enum='user,  group', example='user'),
  totalSize?: int64(name='total_size', description='total_size', example=102400, format='int64'),
  updateTo?: DriveLogSettingDetail(name='update_to'),
}

/**
 * 
 */
model DriveLogSettingDetail {
  name?: string(name='name', description='name', example='abc'),
  ownerId?: string(name='owner_id', description='owner_id', example='123'),
  ownerName?: string(name='owner_name', description='owner_name', example='user2'),
  ownerType?: string(name='owner_type', description='owner_type', enum='user,  group', example='user'),
  totalSize?: int64(name='total_size', description='total_size', example=102400, format='int64'),
}

/**
 * 
 */
model EditDetail {
}

/**
 * 
 */
model EntMgmtLogDetail {
  buildClient?: DomainBuildClient(name='build_client'),
  domainBaseInfo?: DomainBaseInfoLogDetail(name='domain_base_info'),
  domainCnameInfo?: DomainCnameInfoLogDetail(name='domain_cname_info'),
  fileConfig?: DomainFileConfigDetail(name='file_config'),
  fileCustomRoleInfo?: FileCustomRoleInfoLogDetail(name='file_custom_role_info'),
  fileCustomRoleInfoUpdatedTo?: FileCustomRoleInfoLogDetail(name='file_custom_role_info_updated_to'),
  multiRevisionConfig?: ExternalMultiFileRevisionConfig(name='multi_revision_config'),
  seniorConfig?: DomainSeniorConfig(name='senior_config'),
}

/**
 * 导出审计日志request
 */
model ExportAuditLogRequest {
  fileName?: string(name='file_name', description='file_name', example='log.csv'),
  language?: string(name='language', description='language', example='en_US'),
  orderBy?: string(name='order_by', description='order_by', enum='acted_at DESC', example='name'),
  query?: string(name='query', description='query', example='not actor_name=user1', maxLength=4096),
}

/**
 * 导出审计日志response
 */
model ExportAuditLogResponse {
  asyncTaskId?: string(name='async_task_id'),
}

/**
 * 
 */
model ExternalMultiFileRevisionConfig {
  revisionCount?: int64(name='revision_count', format='int64'),
  revisionMergeEnabled?: boolean(name='revision_merge_enabled'),
  revisionRecyclePeriod?: int64(name='revision_recycle_period', format='int64'),
}

/**
 * 
 */
model FaceBoundary {
  Height?: int64(name='Height', format='int64'),
  Left?: int64(name='Left', format='int64'),
  Top?: int64(name='Top', format='int64'),
  Width?: int64(name='Width', format='int64'),
}

/**
 * 
 */
model FaceThumbnail {
  faceGroupId?: string(name='face_group_id'),
  faceId?: string(name='face_id'),
  faceThumbnail?: string(name='face_thumbnail'),
}

/**
 * 
 */
model FileActivity {
  actors?: [ Actor ](name='actors', description='Actors', example='""', items='{"$ref":"#/definitions/Actor"}'),
  primaryActionDetail?: ActionDetail(name='primary_action_detail'),
  targets?: [ Target ](name='targets', description='Targets', example='""', items='{"$ref":"#/definitions/Target"}'),
  timeRange?: TimeRange(name='time_range'),
  timestamp?: string(name='timestamp', description='Timestamp', example='""'),
}

/**
 * 文件共享/授权请求
 */
model FileAddPermissionRequest {
  driveId: string(name='drive_id', description='文件所属的drive_id', example='101'),
  fileId: string(name='file_id', description='文件的file_id', example='ef1***1df'),
  memberList: [ FilePermissionMember ](name='member_list', description='被授权的用户或团队列表', example='', items='{"$ref":"#/definitions/FilePermissionMember"}'),
  subdomainId?: string(name='subdomain_id', description='文件所属的subdomain_id'),
}

/**
 * 
 */
model FileCustomRoleInfoLogDetail {
  actionList?: [ string ](name='action_list', items='{"type":"string"}'),
  description?: string(name='description'),
  roleName?: string(name='role_name'),
  status?: string(name='status'),
}

/**
 * the file op info
 */
model FileDeltaResponse {
  currentCategory?: string(name='current_category'),
  file?: BaseFileDeltaInfo(name='file'),
  fileId?: string(name='file_id'),
  op?: string(name='op'),
}

/**
 * 
 */
model FileInfo {
  fileId?: string(name='file_id'),
}

/**
 * 查询文件继承的共享/授权列表请求
 */
model FileListInheritPermissionRequest {
  driveId: string(name='drive_id', description='文件所属的drive_id', example='101'),
  fileId: string(name='file_id', description='文件的file_id', example='ef1***1df'),
  subdomainId?: string(name='subdomain_id'),
}

/**
 * 文件继承共享/授权的列表
 */
model FileListInheritPermissionResponse {
  items?: [ BaseFileListInheritPermissionResponse ](name='items', items='{"$ref":"#/definitions/BaseFileListInheritPermissionResponse"}'),
}

/**
 * 列举当前文件的共享/授权记录请求
 */
model FileListPermissionRequest {
  driveId: string(name='drive_id', description='文件所属的drive_id', example='101'),
  fileId: string(name='file_id', description='文件的file_id', example='ef1***1df'),
  subdomainId?: string(name='subdomain_id'),
}

/**
 * 查询用户所有的文件共享/授权列表请求
 */
model FileListUserPermissionRequest {
  subdomainId?: string(name='subdomain_id'),
  type?: string(name='type', description='选择查看自己的或团队的或所有的，默认自己的', example='self'),
  userId: string(name='user_id', description='需要查询的用户ID', example='a2fc***'),
}

/**
 * 用户所有的文件共享/授权列表请求
 */
model FileListUserPermissionResponse {
  items?: [ BaseFileUserPermissionResponse ](name='items', items='{"$ref":"#/definitions/BaseFileUserPermissionResponse"}'),
}

/**
 * 
 */
model FileLogDetail {
  decompressFileList?: [ string ](name='decompress_file_list', items='{"type":"string"}'),
  newName?: string(name='new_name', description='new_name', example='test.txt'),
  parentPath?: string(name='parent_path', description='parent_path', example='/a/b/c'),
  revVersion?: int64(name='rev_version', description='revision_version', example=1024, format='int64'),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  toParentPath?: string(name='to_parent_path', description='to_parent_path', example='/e/f/g'),
  toParentPathType?: string(name='to_parent_path_type', description='to_parent_path_type', example='self'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
}

/**
 * 文件被共享/授权的成员列表
 */
model FilePermissionMember {
  disinheritSubGroup?: boolean(name='disinherit_sub_group', description='子团队禁止继承此权限', example=false),
  expireTime: int64(name='expire_time', description='过期时间，传入时间戳，单位毫秒', example=1633598085642, format='int64'),
  identity: Identity(name='identity'),
  roleId: string(name='role_id', description='授予的角色，目前支持：SystemFileOwner(文件协同)、SystemFileDownloader(下载者)、SystemFileEditor(编辑者)、SystemFileEditorWithoutDelete(无删除编辑者)、SystemFileEditorWithoutShareLink(无分享编辑者)、SystemFileMetaViewer(可见列表)、SystemFileUploader(上传者)、SystemFileUploaderAndDownloader(上传/下载者)、SystemFileDownloaderWithShareLink(下载/分享者)、SystemFileUploaderAndDownloaderWithShareLink(上传/下载/分享者)、SystemFileUploaderAndViewer(预览/上传者)、SystemFileUploaderWithShareLink(上传/分享者)、SystemFileViewer(预览者)', example='SystemFileDownloader'),
}

/**
 * 取消文件共享/授权请求
 */
model FileRemovePermissionRequest {
  driveId: string(name='drive_id', description='文件所属的drive_id', example='101'),
  fileId: string(name='file_id', description='文件的file_id', example='ef1***1df'),
  memberList: [ FilePermissionMember ](name='member_list', description='被取消授权的用户或团队列表', example='', items='{"$ref":"#/definitions/FilePermissionMember"}'),
  subdomainId?: string(name='subdomain_id', description='文件所属的subdomain_id'),
}

/**
 * 
 */
model FileStreamInfo {
  contentHash?: string(name='content_hash', description='content_hash', example='7C4A8D09CA3762AF61E59520943DC26494F8941B'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentMd5: string(name='content_md5', description='ContentMd5', example='E10ADC3949BA59ABBE56E057F20F883E'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  preHash?: string(name='pre_hash', description='pre_hash', example='E10ADC3949BA59ABBE56E057F20F883E'),
  proofCode?: string(name='proof_code', description='proof_code'),
  proofVersion?: string(name='proof_version', description='proof_version', enum='v1'),
  size: int64(name='size', description='Size', format='int64', minimum=0),
}

/**
 * find story request
 */
model FindStoriesRequest {
  coverImageThumbnailProcess?: string(name='cover_image_thumbnail_process', description='cover_image_thumbnail_process'),
  coverVideoThumbnailProcess?: string(name='cover_video_thumbnail_process', description='cover_video_thumbnail_process'),
  createTimeRange?: QueryRequestTimeRange(name='create_time_range'),
  customLabels?: string(name='custom_labels', description='custom_labels'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  faceGroupIds?: [ string ](name='face_group_ids', description='face_group_ids', items='{"type":"string"}'),
  limit?: int64(name='limit', description='limit', format='int64'),
  marker?: string(name='marker', description='marker'),
  order?: string(name='order', description='order'),
  sort?: string(name='sort', description='sort'),
  storyEndTimeRange?: QueryRequestTimeRange(name='story_end_time_range'),
  storyId?: string(name='story_id', description='story_id', example='"story112312"'),
  storyName?: string(name='story_name', description='story_name'),
  storyStartTimeRange?: QueryRequestTimeRange(name='story_start_time_range'),
  storyType?: string(name='story_type', description='story_type'),
  urlExpireSec?: int64(name='url_expire_sec', description='url_expire_sec', format='int64'),
  withEmptyStories?: boolean(name='with_empty_stories', description='with_empty_stories'),
}

/**
 * 
 */
model FpRef {
  domainId?: string(name='domain_id', description='domain_id'),
  driveId?: string(name='drive_id', description='drive_id'),
  fileId?: string(name='file_id', description='file_id'),
  fileRevisionId?: string(name='file_revision_id', description='file_revision_id'),
}

/**
 * 
 */
model GetAppPublicKeyRequest {
  httpheaders?: map[string]string,
  appId: string(name='app_id', description='App ID', example='CNMrhxwPJHAReExa'),
}

/**
 * 
 */
model GetAppPublicKeyResponse {
  appId: string(name='app_id', description='App ID', example='cksaljkfiwasdn'),
  publicKey: string(name='public_key', description='RSA加密算法的公钥, PEM格式', example='-----BEGIN RSA PUBLIC KEY-----****-----END RSA PUBLIC KEY-----'),
}

/**
 * 
 */
model GetAppRequest {
  httpheaders?: map[string]string,
  appId: string(name='app_id', description='App ID', example='CNMrhxwPJHAReExa'),
}

/**
 * 
 */
model GetAppResponse {
  aliOwnerId: string(name='ali_owner_id', description='App 拥有者', example='172***430'),
  appId: string(name='app_id', description='App ID', example='cksaljkfiwasdn'),
  appName: string(name='app_name', description='App名称', example='图片分享应用', maxLength=128, minLength=1, pattern='[0-9a-zA-Z]+'),
  appSecret: string(name='app_secret', description='App 秘钥', example='sax***Js9'),
  createdAt: string(name='created_at', description='App 创建时间', example='"2019-08-31T12:58:31.137Z"'),
  description: string(name='description', description='App描述', example='测试专用', maxLength=128, minLength=0),
  logo: string(name='logo', description='App图标', example='https://app.com/logo.jpg'),
  provider: string(name='provider', description='App 提供方', example='Alibaba Inc.'),
  redirectUri: string(name='redirect_uri', description='App回调地址', example='https://app.com/callback'),
  scope: [ string ](name='scope', description='App权限列表', enum='FILE.ALL, SHARE.ALL, STORAGEFILE.ALL, STORAGE.ALL, DRIVE.ALL, USER.ALL', items='{"type":"string"}'),
  screenshots: [ string ](name='screenshots', description='App 屏幕截图', example='http://app.com/screenshot_1.jpg', items='{"type":"string"}'),
  stage: string(name='stage', default='UnPublished,Pending,Published', description='App 当前阶段', example='UnPublished'),
  type: string(name='type', default='WebServer', description='App类型', enum='WebServer, WebBrowser, Native', example='WebServer'),
  updatedAt: string(name='updated_at', description='App 修改时间', example='"2019-08-31T12:58:31.137Z"'),
}

/**
 * 获取异步人去信息
 */
model GetAsyncTaskRequest {
  asyncTaskId?: string(name='async_task_id', description='async_task_id
type:string', example='000e89fb-cf8f-11e9-8ab4-b6e980803a3b'),
}

/**
 * Get AsyncTask Response
 */
model GetAsyncTaskResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id
type:string', example='000e89fb-cf8f-11e9-8ab4-b6e980803a3b'),
  consumedProcess?: int64(name='consumed_process', description='consumed_process', example=1024000, format='int64'),
  errCode?: int64(name='err_code', description='err_code', example=200, format='int64'),
  message?: string(name='message', description='message', example='task is running'),
  punishedFileCount?: int64(name='punished_file_count', description='punished_file_count', format='int64'),
  state?: string(name='state', description='state', enum='Running, Failed, Succeed', example='success'),
  status?: string(name='status', description='status', enum='Running, Failed, Succeed', example='Succeed'),
  totalProcess?: int64(name='total_process', description='total_process', example=4096000, format='int64'),
  url?: string(name='url', description='download_url
example'),
}

/**
 * 
 */
model GetBizCNameInfoRequest {
  httpheaders?: map[string]string,
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='is vpc', example=false),
}

/**
 * 
 */
model GetBizCNameInfoResponse {
  bizCname?: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  certId?: string(name='cert_id', description='cert name', example='aa-bb-cc-dd'),
  certName?: string(name='cert_name', description='cert name', example='xdrv2020cert'),
  cnameStatus?: CNameStatus(name='cname_status'),
  cnameType?: string(name='cname_type', description='cname type', example='api'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='is vpc', example=false),
  subdomainId: string(name='subdomain_id', description='subdomain ID', example='sz100'),
}

/**
 * 
 */
model GetCorsRuleListRequest {
  httpheaders?: map[string]string,
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
}

/**
 * 
 */
model GetDataCNameInfoRequest {
  httpheaders?: map[string]string,
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
}

/**
 * Get default drive request
 */
model GetDefaultDriveRequest {
  subdomainId?: string(name='subdomain_id', description='Subdomain ID', example='hz-123'),
  userId?: string(name='user_id', description='用户ID', example='abc'),
}

/**
 * 获取文件夹size信息
 */
model GetDirSizeInfoResponse {
  dirCount?: int64(name='dir_count', description='dir_count', example=1000, format='int64'),
  fileCount?: int64(name='file_count', description='file_count', example=100000, format='int64'),
  size?: int64(name='size', description='size', example=1024576, format='int64'),
}

/**
 * get domain request
 */
model GetDomainRequest {
  httpheaders?: map[string]string,
  domainId: string(name='domain_id', description='Domain ID', example='sz111'),
  fields?: string(name='fields', description='fields,需要获取的属性字段,英文逗号分隔,*表示获取所有fields支持的枚举属性字段,为空不获取任何枚举属性字段', example='file_category'),
  getBenefit?: boolean(name='get_benefit'),
  getQuotaUsed?: boolean(name='get_quota_used', description='是否获取 quota 使用情况'),
  getShareDetail?: boolean(name='get_share_detail', description='是否获取share/share_link详情', example=false),
  mergeParent?: boolean(name='merge_parent', description='是否 merge parent 配置'),
}

/**
 * get domain response
 */
model GetDomainResponse {
  apiCname?: string(name='api_cname', description='Domain APICName', example='"pdsapi.yoursite.com"'),
  appCname?: string(name='app_cname', description='Domain AppCName', example='"pdsapp.yoursite.com"'),
  appConfig?: AppConfig(name='app_config'),
  archiveConfig?: ArchiveConfig(name='archive_config'),
  archiveFilesEnable?: boolean(name='archive_files_enable', description='打包下载配置'),
  auditLogConfig?: AuditLogConfig(name='audit_log_config'),
  authCname?: string(name='auth_cname', description='Domain AuthCName', example='"pdsauth.yoursite.com"'),
  authConfig?: object(name='auth_config', additionalProperties='{"$ref":"#/definitions/AuthConfig"}', description='登录相关信息', example='{}'),
  authDingdingAppId?: string(name='auth_dingding_app_id', description='钉钉 App Id', example='abc'),
  authDingdingAppSecret?: string(name='auth_dingding_app_secret', description='钉钉 App Secret', example='abc'),
  authDingdingEnable?: boolean(name='auth_dingding_enable', description='是否开启了钉钉认证', example=true),
  authRamAppId?: string(name='auth_ram_app_id', description='RAM App Id', example='abc'),
  authRamAppSecret?: string(name='auth_ram_app_secret', description='RAM App Secret', example='abc'),
  authRamEnable?: boolean(name='auth_ram_enable', description='是否开启了 RAM 认证', example=true),
  benefits?: object(name='benefits', additionalProperties='{"$ref":"#/definitions/BenefitMetaResponse"}'),
  createdAt?: string(name='created_at', description='Domain 创建时间', example='"2019-08-31T12:58:31.137Z"'),
  dataHashName?: string(name='data_hash_name', description='数据 Hash 算法', example='sha1'),
  defaultSuperAdminConfig?: DomainSuperAdminConfig(name='default_super_admin_config'),
  description?: string(name='description', description='Domain 描述', example='my test domain'),
  domainId?: string(name='domain_id', description='Domain ID', example='sz111'),
  domainName?: string(name='domain_name', description='Domain 描述', example='my test domain'),
  endpoints?: DomainEndpointsResponse(name='endpoints'),
  enterpriseCustomizedLogin?: boolean(name='enterprise_customized_login', description='企业文件管理专属登录开关'),
  eventFilenameMatches?: string(name='event_filename_matches', description='事件通知 MNS 匹配文件名', example='abc'),
  eventMnsEndpoint?: string(name='event_mns_endpoint', description='事件通知 MNS Endpoint', example='http://abc.mns.cn-shenzhen.aliyuncs.com'),
  eventMnsTopic?: string(name='event_mns_topic', description='事件通知 MNS Topic', example='abc'),
  eventNames?: [ string ](name='event_names', description='事件名列表', example='abc', items='{"type":"string"}'),
  eventRoleArn?: string(name='event_role_arn', description='事件通知 Role Arn'),
  expireTime?: int64(name='expire_time', description='预付费domain过期时间', format='int64'),
  fileCategory?: object(name='file_category', additionalProperties='{"type":"string"}'),
  groupConfig?: GroupConfig(name='group_config'),
  groupSingleDriveEnabled?: boolean(name='group_single_drive_enabled'),
  initDriveEnable?: boolean(name='init_drive_enable', description='是否开启了自动初始化 Drive', example=true),
  initDriveSize?: int64(name='init_drive_size', description='自动初始化 Drive 大小', example=1024, format='int64'),
  initDriveStoreId?: string(name='init_drive_store_id', description='自动初始化 Drive 所用 Store ID', example='1'),
  mode?: string(name='mode', description='Domain 类型', example='StandardMode'),
  multiRevisionConfig?: BaseMultiRevisionConfigResponse(name='multi_revision_config'),
  officeEditConfig?: OfficeEditConfig(name='office_edit_config'),
  officePreviewConfig?: OfficePreviewConfig(name='office_preview_config'),
  parallelUploadEnabled?: boolean(name='parallel_upload_enabled'),
  parentDomainId?: string(name='parent_domain_id', description='Parent Domain ID', example='sz111'),
  pathType?: string(name='path_type', description='Domain 类型', example='CCPPath'),
  prepaidPackage?: string(name='prepaid_package', description='预付费套餐'),
  publishedAppAccessStrategy?: AppAccessStrategy(name='published_app_access_strategy'),
  recycleBinConfig?: RecycleBinConfig(name='recycle_bin_config'),
  roleConfig?: RoleConfig(name='role_config'),
  serviceCode?: string(name='service_code', description='Domain ServiceCode', example='"edm"'),
  sharable?: boolean(name='sharable', description='是否开启了共享', example=true),
  shareDetail?: ShareDetailResponse(name='share_detail'),
  shareLinkDetail?: ShareLinkDetailResponse(name='share_link_detail'),
  shareLinkEnabled?: boolean(name='share_link_enabled', description='是否开启了分享', example=true),
  sizeQuota?: int64(name='size_quota', description='容量配额', format='int64'),
  sizeQuotaUsed?: int64(name='size_quota_used', format='int64'),
  spiInstanceId?: string(name='spi_instance_id', description='SPI 实例 id'),
  status?: int64(name='status', description='domain状态：创建中，正常，已过期', format='int64'),
  storeLevel?: string(name='store_level', description='存储级别', example='Standard'),
  storeRegionList?: [ string ](name='store_region_list', description='存储 Region 列表', example='cn-hangzhou', items='{"type":"string"}'),
  subdomainConfig?: SubdomainConfig(name='subdomain_config'),
  updatedAt?: string(name='updated_at', description='Domain 更新时间', example='"2019-08-31T12:58:31.137Z"'),
  usedSize?: int64(name='used_size', description='逻辑空间使用量，单位为字节', example=1073741824, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userCountQuota?: int64(name='user_count_quota', description='用户数配额', format='int64'),
  userSingleDriveEnabled?: boolean(name='user_single_drive_enabled', description='user和group只能有一个drive的开关'),
  videoPreviewAppConfig?: VideoPreviewAppConfig(name='video_preview_app_config'),
  videoPreviewConfig?: VideoPreviewConfig(name='video_preview_config'),
  watermarkConfig?: BaseWatermarkConfigResponse(name='watermark_config'),
}

/**
 * 获取文件下载地址的请求body
 */
model GetDownloadUrlRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  expireSec?: int64(name='expire_sec', default=900, description='expire_sec', example=15, format='int64', maximum=115200, minimum=1),
  fileId: string(name='file_id', description='file_id', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  fileIdPath?: string(name='file_id_path'),
  fileName?: string(name='file_name', description='file_name', example='ccp.jpg', maxLength=1024, minLength=1),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  referer?: string(name='referer'),
  revisionId?: string(name='revision_id', description='revision_id', example='6030dbcce499a7dad4b54ad7aa411e1535c6af40'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  signToken?: string(name='sign_token'),
  staticUrl?: boolean(name='static_url'),
}

/**
 * 获取download url response
 */
model GetDownloadUrlResponse {
  cdnUrl?: string(name='cdn_url', description='cdn_url'),
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z07:00'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  internalUrl?: string(name='internal_url', description='internal_url'),
  method?: string(name='method', description='method', example='GET'),
  punishFlag?: int64(name='punish_flag', description='PunishFlag', format='int64'),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  size?: int64(name='size', description='size', example=102400, format='int64'),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='streams info'),
  streamsUrl?: object(name='streams_url', additionalProperties='{"type":"string"}', description='streams url info'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d79219b0aa9a7c995a94a96993ba3205cd91c5a%2F5d79219bf3261a5d38744da0834ed489b677a27a?Expires=xxxOSSAccessKeyId=xxx&Signature=xxx&response-content-disposition=attachment%3Bfilename%3DtBiZAoJPC2c8b13450eda4292b7f5f8010618e078.txt'),
}

/**
 * get drive data process template request
 */
model GetDriveDataProcessTemplateRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
}

/**
 * Get drive request
 */
model GetDriveRequest {
  driveId: string(name='drive_id', description='Drive ID', example='123'),
  subdomainId?: string(name='subdomain_id', description='Subdomain ID', example='hz-123'),
}

/**
 * Get drive response
 */
model GetDriveResponse {
  actionList?: [ string ](name='action_list', items='{"type":"string"}'),
  category?: string(name='category'),
  createdAt?: string(name='created_at'),
  creator?: string(name='creator', description='Drive 创建者', example='ccp'),
  description?: string(name='description', description='Drive 备注信息', example='ccp team drive'),
  domainId?: string(name='domain_id', description='Domain ID', example='hz999'),
  driveId?: string(name='drive_id', description='Drive ID', example='123'),
  driveName?: string(name='drive_name', description='Drive 名称', example='ccpdrive'),
  driveType?: string(name='drive_type', description='Drive 类型', example='normal'),
  encryptDataAccess?: boolean(name='encrypt_data_access'),
  encryptMode?: string(name='encrypt_mode'),
  owner?: string(name='owner', description='Drive 所有者', example='ccp'),
  ownerType?: string(name='owner_type', description='Drive 所有者类型', example='user'),
  permission?: object(name='permission', additionalProperties='{"$ref":"#/definitions/IDPermission"}'),
  relativePath?: string(name='relative_path', description='Drive存储基于store的相对路径，domain的PathType为OSSPath时返回', example='/a/b/e/'),
  status?: string(name='status', description='Drive 状态', example='enabled'),
  storeId?: string(name='store_id', description='存储 ID, domain的PathType为OSSPath时返回', example='123'),
  subdomainId?: string(name='subdomain_id', description='subdomain_id'),
  totalSize?: int64(name='total_size', description='Drive 空间总量', example=102400, format='int64'),
  updatedAt?: string(name='updated_at'),
  usedSize?: int64(name='used_size', description='Drive 空间已使用量', example=1024, format='int64'),
}

/**
 * Get face group info request
 */
model GetFaceGroupInfoRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  groupId: string(name='group_id', description='group_id 列举人脸分组接口中获取', example='"group-asdasdasdeop"'),
}

/**
 * 根据路径获取 File 接口 body
 */
model GetFileByPathRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath?: string(name='file_path', description='file_path', example='/a/b/c'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  referer?: string(name='referer'),
  signToken?: string(name='sign_token'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 根据路径获取文件元数据response
 */
model GetFileByPathResponse {
  actionList?: [ string ](name='action_list', description='action_list', items='{"type":"string"}'),
  autoDeleteLeftSec?: int64(name='auto_delete_left_sec', description='auto_delete_left_sec', example=10000, format='int64'),
  category?: string(name='category', description='category', enum='doc, image, audio, video', example='doc'),
  characteristicHash?: string(name='characteristic_hash', description='CharacteristicHash'),
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  creatorId?: string(name='creator_id', description='creator_id', example='123abc'),
  creatorName?: string(name='creator_name', description='creator_name', example='test_user'),
  creatorType?: string(name='creator_type', description='creator_type', example='User, AliUser'),
  customField1?: string(name='custom_field_1', description='custom_field_1'),
  customField2?: string(name='custom_field_2', description='custom_field_2'),
  customType?: string(name='custom_type', description='custom_type'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode', example='pin'),
  exFieldsInfo?: object(name='ex_fields_info', additionalProperties='{"type":"object"}', description='ex_fields_info'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  filePathType?: string(name='file_path_type', description='TODO 先不在API上透出该字段，file_path_type目前在edm中返回；path type是否在PDS通用逻辑中展示，展示的含义是什么，需要再做分析'),
  hidden?: boolean(name='hidden', description='Hidden
type: boolean', enum='false, true', example=false),
  imageMediaMetadata?: ImageMediaResponse(name='image_media_metadata'),
  investigationStatus?: int64(name='investigation_status', description='InvestigationStatus', format='int64'),
  labels?: [ string ](name='labels', description='labels', example='label1:1, label2:2', items='{"type":"string"}'),
  lastModifierId?: string(name='last_modifier_id', description='last_modifier_id', example='123abc'),
  lastModifierName?: string(name='last_modifier_name', description='last_modifier_name', example='test_user'),
  lastModifierType?: string(name='last_modifier_type', description='last_modifier_type', example='User, AliUser'),
  localCreatedAt?: string(name='local_created_at', description='local_created_at', example='2019-08-20T06:51:27.292Z'),
  localModifiedAt?: string(name='local_modified_at'),
  meta?: string(name='meta'),
  mimeExtension?: string(name='mime_extension', description='mime_extension', example='mov'),
  mimeType?: string(name='mime_type', description='mime_type', example='video/quicktime'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFileId?: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  punishFlag?: int64(name='punish_flag', description='PunishFlag', format='int64'),
  punishReason?: string(name='punish_reason', description='PunishReason'),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  revisionVersion?: int64(name='revision_version', description='revision_version', example=1024, format='int64'),
  shareId?: string(name='share_id'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  starred?: boolean(name='starred', description='starred
type: boolean', example=false),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='@Deprecated streams url info'),
  syncDeviceFlag?: boolean(name='sync_device_flag', description='sync_device_flag'),
  syncFlag?: boolean(name='sync_flag', description='sync_flag'),
  syncMeta?: string(name='sync_meta', description='sync_meta'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  thumbnailUrls?: object(name='thumbnail_urls', additionalProperties='{"type":"string"}', description='thumbnail_urls'),
  trashed?: boolean(name='trashed', description='Trashed
type: boolean', enum='false, true', example=false),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
  userTags?: object(name='user_tags', additionalProperties='{"type":"string"}', description='user_tags'),
  videoMediaMetadata?: VideoMediaResponse(name='video_media_metadata'),
  videoPreviewMetadata?: VideoPreviewResponse(name='video_preview_metadata'),
}

/**
 * 获取文件人脸分组列表请求
 */
model GetFileFaceGroupsRequest {
  driveId?: string(name='drive_id'),
  fileId?: string(name='file_id'),
  filter?: string(name='filter'),
}

/**
 * 获取文件元数据
 */
model GetFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fields?: string(name='fields', default='*', description='fields', example='*'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  fileIdPath?: string(name='file_id_path'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  referer?: string(name='referer'),
  revisionId?: string(name='revision_id', description='revision_id', example='6030dbcce499a7dad4b54ad7aa411e1535c6af40'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  signToken?: string(name='sign_token'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 获取文件元数据response
 */
model GetFileResponse {
  actionList?: [ string ](name='action_list', description='action_list', items='{"type":"string"}'),
  autoDeleteLeftSec?: int64(name='auto_delete_left_sec', description='auto_delete_left_sec', example=10000, format='int64'),
  category?: string(name='category', description='category', enum='doc, image, audio, video', example='doc'),
  characteristicHash?: string(name='characteristic_hash', description='CharacteristicHash'),
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  creatorId?: string(name='creator_id', description='creator_id', example='123abc'),
  creatorName?: string(name='creator_name', description='creator_name', example='test_user'),
  creatorType?: string(name='creator_type', description='creator_type', example='User, AliUser'),
  customField1?: string(name='custom_field_1', description='custom_field_1'),
  customField2?: string(name='custom_field_2', description='custom_field_2'),
  customType?: string(name='custom_type', description='custom_type'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode', example='pin'),
  exFieldsInfo?: object(name='ex_fields_info', additionalProperties='{"type":"object"}', description='ex_fields_info'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  filePathType?: string(name='file_path_type', description='TODO 先不在API上透出该字段，file_path_type目前在edm中返回；path type是否在PDS通用逻辑中展示，展示的含义是什么，需要再做分析'),
  hidden?: boolean(name='hidden', description='Hidden
type: boolean', enum='false, true', example=false),
  imageMediaMetadata?: ImageMediaResponse(name='image_media_metadata'),
  investigationStatus?: int64(name='investigation_status', description='InvestigationStatus', format='int64'),
  labels?: [ string ](name='labels', description='labels', example='label1:1, label2:2', items='{"type":"string"}'),
  lastModifierId?: string(name='last_modifier_id', description='last_modifier_id', example='123abc'),
  lastModifierName?: string(name='last_modifier_name', description='last_modifier_name', example='test_user'),
  lastModifierType?: string(name='last_modifier_type', description='last_modifier_type', example='User, AliUser'),
  localCreatedAt?: string(name='local_created_at', description='local_created_at', example='2019-08-20T06:51:27.292Z'),
  localModifiedAt?: string(name='local_modified_at'),
  meta?: string(name='meta'),
  mimeExtension?: string(name='mime_extension', description='mime_extension', example='mov'),
  mimeType?: string(name='mime_type', description='mime_type', example='video/quicktime'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFileId?: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  punishFlag?: int64(name='punish_flag', description='PunishFlag', format='int64'),
  punishReason?: string(name='punish_reason', description='PunishReason'),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  revisionVersion?: int64(name='revision_version', description='revision_version', example=1024, format='int64'),
  shareId?: string(name='share_id'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  starred?: boolean(name='starred', description='starred
type: boolean', example=false),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='@Deprecated streams url info'),
  syncDeviceFlag?: boolean(name='sync_device_flag', description='sync_device_flag'),
  syncFlag?: boolean(name='sync_flag', description='sync_flag'),
  syncMeta?: string(name='sync_meta', description='sync_meta'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  thumbnailUrls?: object(name='thumbnail_urls', additionalProperties='{"type":"string"}', description='thumbnail_urls'),
  trashed?: boolean(name='trashed', description='Trashed
type: boolean', enum='false, true', example=false),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
  userTags?: object(name='user_tags', additionalProperties='{"type":"string"}', description='user_tags'),
  videoMediaMetadata?: VideoMediaResponse(name='video_media_metadata'),
  videoPreviewMetadata?: VideoPreviewResponse(name='video_preview_metadata'),
}

/**
 * get identity to benefit pkg mapping request
 */
model GetIdentityToBenefitPkgMappingRequest {
  benefitPkgId: string(name='benefit_pkg_id', description='权益包的唯一标识', example='"40cb7794c9294"'),
  domainId?: string(name='domain_id', description='domain ID', example='sz100'),
  identityId: string(name='identity_id', description='实体的唯一标识，如 userID', example='"user1"'),
  identityType: string(name='identity_type', description='实体类型，当前支持user类型实体', example='user'),
}

/**
 * Get photo count request
 */
model GetImageCountRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
}

/**
 * 获取最新游标
 */
model GetLastCursorRequest {
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  syncRootId?: string(name='sync_root_id', description='sync_root_id'),
}

/**
 * get last file op cursor response
 */
model GetLastCursorResponse {
  cursor?: string(name='cursor'),
}

/**
 * get_media_play_url request
 */
model GetMediaPlayURLRequest {
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
}

/**
 * get_media_play_url response
 */
model GetMediaPlayURLResponse {
  url?: string(name='url', description='url', example='https://abc.com/v2/file/play_media?auth_key=xyz&file_id=abc'),
}

/**
 * GetOfficeEditUrlOption 权限控制
 */
model GetOfficeEditUrlOption {
  copy?: boolean(name='copy', description='Copy'),
  print?: boolean(name='print'),
  readonly?: boolean(name='readonly'),
}

/**
 * 获取office文档在线编辑地址
 */
model GetOfficeEditUrlRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  option?: GetOfficeEditUrlOption(name='option'),
  revisionId?: string(name='revision_id', description='revision_id', example='6030dbcce499a7dad4b54ad7aa411e1535c6af40'),
  shareId?: string(name='share_id', description='share_id
example'),
  watermark?: GetOfficeEditUrlWatermark(name='watermark'),
}

/**
 * 获取office文档在线编辑地址 response
 */
model GetOfficeEditUrlResponse {
  editUrl?: string(name='edit_url', description='EditUrl', example='https://office-cn-shanghai.imm.aliyuncs.com/office/w/1023210024677934_a2_3899cdbd16b3061554556d9e949bb2fe85a944030bf147f8de1d79036f5e5a25?hidecmb=1&simple=1&_w_tokentype=1'),
  officeAccessToken?: string(name='office_access_token', description='AccessToken', example='ac80b70a70fe4c34914a12743ac3a6fbv2'),
  officeRefreshToken?: string(name='office_refresh_token', description='RefreshToken', example='ac80b70a70fe4c34914a12743ac3a6fbv2'),
}

/**
 * GetOfficeEditUrlWatermark 水印配置
 */
model GetOfficeEditUrlWatermark {
  fillstyle?: string(name='fillstyle', description='FillStyle'),
  font?: string(name='font', description='Font'),
  horizontal?: int64(name='horizontal', description='Horizontal', format='int64'),
  rotate?: double(name='rotate', description='Rotate', format='double'),
  type?: int32(name='type', description='Type', format='int32'),
  value?: string(name='value', description='Value'),
  vertical?: int64(name='vertical', description='Vertical', format='int64'),
}

/**
 * GetOfficePreviewUrlOption 权限控制
 */
model GetOfficePreviewUrlOption {
  copy?: boolean(name='copy'),
  print?: boolean(name='print'),
}

/**
 * 获取office文档预览地址
 */
model GetOfficePreviewUrlRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  allowCopy?: boolean(name='allow_copy', description='allow_copy
default true'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  language?: string(name='language', description='language', example='en_US'),
  option?: GetOfficePreviewUrlOption(name='option'),
  referer?: string(name='referer'),
  revisionId?: string(name='revision_id', description='revision_id', example='6030dbcce499a7dad4b54ad7aa411e1535c6af40'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
}

/**
 * 获取文档预览地址 response
 */
model GetOfficePreviewUrlResponse {
  accessToken?: string(name='access_token', description='AccessToken', example='ac80b70a70fe4c34914a12743ac3a6fbv2'),
  previewUrl?: string(name='preview_url', description='preview_url', example='https://office-cn-shanghai.imm.aliyuncs.com/office/w/1023210024677934_a2_3899cdbd16b3061554556d9e949bb2fe85a944030bf147f8de1d79036f5e5a25?hidecmb=1&simple=1&_w_tokentype=1'),
}

/**
 * 
 */
model GetPublicKeyResponse {
  appId: string(name='app_id', description='App ID', example='cksaljkfiwasdn'),
  keyPairId?: string(name='key_pair_id'),
  publicKey: string(name='public_key', description='RSA加密算法的公钥, PEM格式', example='-----BEGIN RSA PUBLIC KEY-----****-----END RSA PUBLIC KEY-----'),
}

/**
 * 获取版本
 */
model GetRevisionRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fields?: string(name='fields', default='*', description='fields', example='*'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  referer?: string(name='referer'),
  revisionId: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  signToken?: string(name='sign_token'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 获取版本response
 */
model GetRevisionResponse {
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  creatorId?: string(name='creator_id', description='creator_id', example='123abc'),
  creatorName?: string(name='creator_name', description='creator_name', example='test_user'),
  creatorType?: string(name='creator_type', description='creator_type', example='User, AliUser'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  isLatestVersion?: boolean(name='is_latest_version', description='is_latest_version
type: boolean'),
  keepForever?: boolean(name='keep_forever', default=false, description='keep_forever
type: boolean', example=false),
  revisionCreateReason?: string(name='revision_create_reason', description='revision_create_reason
type: string', example='description', maxLength=1024),
  revisionDescription?: string(name='revision_description', description='revision_description
type: string', example='description', maxLength=1024),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  revisionName?: string(name='revision_name', description='revision_name
name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  revisionVersion?: int64(name='revision_version', description='revision_version', example=1024, format='int64'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='@Deprecated streams url info'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * get_share_link_by_anonymous request
 */
model GetShareLinkByAnonymousRequest {
  shareId?: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
}

/**
 * get_share_link_by_anonymous response
 */
model GetShareLinkByAnonymousResponse {
  accessCount?: int64(name='access_count', description='access_count', example=1, format='int64'),
  avatar?: string(name='avatar', description='avatar', example='https://abcd.com/efgh'),
  category?: string(name='category', description='文件分享大类', example='collect'),
  comments?: string(name='comments', description='comments', example='xxx'),
  creatable?: boolean(name='creatable', description='允许上传', example=true),
  creatableFileIdList?: [ string ](name='creatable_file_id_list', description='允许上传的目录列表', example='xxx', items='{"type":"string"}'),
  creatorId?: string(name='creator_id', description='creator_id', example='zhangsan'),
  creatorName?: string(name='creator_name', description='creator_name', example='ABC**FG'),
  creatorPhone?: string(name='creator_phone', description='creator_phone', example='180**32'),
  disableDownload?: boolean(name='disable_download', description='禁止下载分享中的文件', example=true),
  disablePreview?: boolean(name='disable_preview', description='禁止预览分享中的文件', example=true),
  disableSave?: boolean(name='disable_save', description='禁止转存分享中的文件', example=true),
  disableVisible?: boolean(name='disable_visible', description='分享中的文件不可见', example=true),
  downloadCount?: int64(name='download_count', description='下载次数', example=1, format='int64'),
  downloadLimit?: int64(name='download_limit', description='分享下载次数限制', example=10, format='int64'),
  expiration?: string(name='expiration', description='expiration', example='2019-08-20T06:51:27.292Z'),
  fileCount?: int64(name='file_count', description='file_count', example=3, format='int64'),
  hasPwd?: boolean(name='has_pwd', description='has_pwd', example=true),
  needCheckPwd?: boolean(name='need_check_pwd', description='need_check_pwd', example=true),
  officeEditable?: boolean(name='office_editable', description='允许在线编辑文档', example=true),
  previewCount?: int64(name='preview_count', description='preview_count', example=1, format='int64'),
  previewLimit?: int64(name='preview_limit', description='分享预览次数限制', example=10, format='int64'),
  reportCount?: int64(name='report_count', description='举报次数', example=1, format='int64'),
  requireLogin?: boolean(name='require_login', description='企业内(domain)登录后才允许使用分享', example=true),
  saveCount?: int64(name='save_count', description='转存次数', example=1, format='int64'),
  saveDownloadLimit?: int64(name='save_download_limit', description='分享转存和下载的总次数限制', example=10, format='int64'),
  saveLimit?: int64(name='save_limit', description='分享转存次数限制', example=10, format='int64'),
  shareIcon?: string(name='share_icon', description='share_icon', example='xxx'),
  shareName?: string(name='share_name', description='share_name', example='name'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  videoPreviewCount?: int64(name='video_preview_count', description='音视频播放次数', example=1, format='int64'),
}

/**
 * 获取分享中文件下载地址的请求body
 */
model GetShareLinkDownloadURLRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id is optional', example='1001'),
  expireSec?: int64(name='expire_sec', default=300, description='expire_sec', example=15, format='int64', maximum=600, minimum=1),
  fileId: string(name='file_id', description='file_id', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  fileIdPath?: string(name='file_id_path'),
  getAudioPlayInfo?: boolean(name='get_audio_play_info', description='get_audio_play_info', example=true),
  getStreamsUrl?: boolean(name='get_streams_url', description='get_streams_url', example=true),
  getVideoPlayInfo?: boolean(name='get_video_play_info', description='get_video_play_info', example=true),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  referer?: string(name='referer'),
  shareId: string(name='share_id', description='share_id is required', example='Agg1RL8pw96'),
  signToken?: string(name='sign_token'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 获取分享中文件数据response
 */
model GetShareLinkDownloadURLResponse {
  audioTemplateList?: [ MediaPlayInfoTemplate ](name='audio_template_list', description='audio_template_list', items='{"$ref":"#/definitions/MediaPlayInfoTemplate"}'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='@Deprecated streams url info'),
  streamsUrl?: object(name='streams_url', additionalProperties='{"type":"string"}', description='streams url info'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  videoTemplateList?: [ MediaPlayInfoTemplate ](name='video_template_list', description='video_template_list', items='{"$ref":"#/definitions/MediaPlayInfoTemplate"}'),
}

/**
 * get_share_id request
 */
model GetShareLinkIDRequest {
  shareMsg?: string(name='share_msg', description='share_msg', example='复制这段话¢oJ311MvRD8R¢打開阿里云宝App【来自xxx的分享】'),
}

/**
 * get_share_id response
 */
model GetShareLinkIDResponse {
  shareId?: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
  sharePwd?: string(name='share_pwd', description='share_pwd', example='12ABcd'),
}

/**
 * get_share request
 */
model GetShareLinkRequest {
  shareId?: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
}

/**
 * get_share_token request
 */
model GetShareLinkTokenRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  checkSharePwd?: boolean(name='check_share_pwd', description='check_share_pwd, effective for creator, admin or aksk only', example=true),
  expireSec?: int64(name='expire_sec', default=7200, description='expire_sec', example=7200, format='int64', maximum=7200, minimum=0),
  nvcParam?: string(name='nvc_param', description='nvc_param'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
  sharePwd?: string(name='share_pwd', description='share_pwd', example='12ABcd'),
}

/**
 * get_share_token response
 */
model GetShareLinkTokenResponse {
  expireTime: string(name='expire_time', description='expire_time', example='2019-09-01T06:57:48.813Z'),
  expiresIn: int64(name='expires_in', description='expires_in', example=3600, format='int64'),
  shareToken: string(name='share_token', description='share_token', example='cnskjajkahwdhwialsnd'),
}

/**
 * get share request
 */
model GetShareRequest {
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6'),
}

/**
 * Get share response
 */
model GetShareResponse {
  createdAt?: string(name='created_at', description='created_at', example='2006-01-02T15:04:05.999Z'),
  creator?: string(name='creator', description='creator', example='xxx'),
  description?: string(name='description', description='description', example='share description'),
  domainId?: string(name='domain_id', description='domain_id', example='domain-1'),
  driveId?: string(name='drive_id', description='drive_id', example='1'),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z'),
  expired?: boolean(name='expired', description='expired', example=false),
  owner?: string(name='owner', description='owner', example='xxx'),
  ownerType?: string(name='owner_type', description='owner', example='xxx'),
  permissions?: [ string ](name='permissions', description='permissions', example='', items='{"type":"string"}'),
  shareFileId?: string(name='share_file_id', description='share_file_id'),
  shareFilePath?: string(name='share_file_path', description='share_path', example='/a/b/c/'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6'),
  shareName?: string(name='share_name', description='share_name', example='new_share'),
  sharePolicy?: [ SharePermissionPolicy ](name='share_policy', items='{"$ref":"#/definitions/SharePermissionPolicy"}'),
  status?: string(name='status', description='status', example='enabled'),
  updatedAt?: string(name='updated_at', description='updated_at', example='2006-01-02T15:04:05.999Z'),
}

/**
 * Get story request
 */
model GetStoryRequest {
  coverImageThumbnailProcess?: string(name='cover_image_thumbnail_process', description='cover_image_thumbnail_process'),
  coverVideoThumbnailProcess?: string(name='cover_video_thumbnail_process', description='cover_video_thumbnail_process'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  storyId: string(name='story_id', description='story_id', example='"story112312"'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  urlExpireSec?: int64(name='url_expire_sec', description='url_expire_sec', format='int64'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 
 */
model GetSubdomainMgmtRequest {
  domainId: string(name='domain_id', description='用以唯一标识domain', example='"bj23"'),
  getShareDetail?: boolean(name='get_share_detail', description='是否获取share/share_link详情', example=false),
  subdomainId: string(name='subdomain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
}

/**
 * 
 */
model GetSubdomainRequest {
  subdomainId: string(name='subdomain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
}

/**
 * 
 */
model GetSubdomainResponse {
  createdAt: string(name='created_at', description='创建时间', example='"2021-02-05T06:07:05.181Z"'),
  description: string(name='description', description='描述', example='"描述-1"'),
  groupSingeDriveEnable?: boolean(name='group_singe_drive_enable'),
  name: string(name='name', description='名称', example='"subdomain-1"'),
  sharable?: boolean(name='sharable', description='是否开启了共享', example=true),
  shareDetail?: ShareDetailResponse(name='share_detail'),
  shareLinkDetail?: ShareLinkDetailResponse(name='share_link_detail'),
  shareLinkEnabled?: boolean(name='share_link_enabled', description='是否开启了分享', example=true),
  status?: int64(name='status', description='当前状态', example=0, format='int64'),
  subdomainId: string(name='subdomain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
  totalSize: int64(name='total_size', description='逻辑空间quota，-1表示无限制，单位为字节', example=1073741824, format='int64'),
  updatedAt: string(name='updated_at', description='更新时间', example='"2021-02-05T06:07:05.181Z"'),
  usedSize?: int64(name='used_size', description='逻辑空间使用量，单位为字节', example=1073741824, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userQuota: int64(name='user_quota', description='用户数quota，-1表示无限制', example=-1, format='int64'),
  userSingleDriveEnabled?: boolean(name='user_single_drive_enabled'),
}

/**
 * get task status request
 */
model GetTaskStatusRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  taskId?: string(name='task_id'),
}

/**
 * 获取文件上传URL
 */
model GetUploadUrlRequest {
  contentMd5?: string(name='content_md5', description='content_md5', example='E10ADC3949BA59ABBE56E057F20F883E', maxLength=32),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='upload_part_list', example='', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id'),
  uploadId: string(name='upload_id', description='upload_id', example='3920F2BE4D9446D6967E2ED505A97EFD'),
}

/**
 * Get UploadUrl Response
 */
model GetUploadUrlResponse {
  createAt?: string(name='create_at', description='created_at', example='2019-09-11T16:34:36.977Z'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', example='', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id', description='share_id', example='1'),
  uploadId?: string(name='upload_id', description='upload_id', example='F3C25CDFA5C74ECB8DE32672F6211FD4'),
}

/**
 * 
 */
model GetUserAccessTokenRequest {
  subdomainId?: string(name='subdomain_id', description='subdomain ID', example='"9fd34986bd30489f8dbf2208d41c66c2"'),
  userId: string(name='user_id', description='用户 ID', example='"user-xxx"'),
}

/**
 * 
 */
model GetUserAccessTokenResponse {
  accessToken: string(name='access_token', description='用于调用业务接口的accessToken', example='cnskjajkahwdhwialsnd'),
  defaultDriveId: string(name='default_drive_id', description='Default Drive ID', example='100'),
  expireTime: string(name='expire_time', description='accessToken过期时间，ISO时间', example='2019-09-01T06:57:48.813Z'),
  expiresIn: int64(name='expires_in', description='accessToken过期时间，单位秒', example=3600, format='int64'),
  refreshToken?: string(name='refresh_token', description='用于刷新accessToken', example='cnskjajkahwdhwialsnd'),
  role: string(name='role', description='当前用户角色', example='user'),
  tokenType: string(name='token_type', description='accessToken类型，Bearer', example='Bearer'),
  userId: string(name='user_id', description='当前用户ID', example='DING-xxxxx'),
}

/**
 * 获取视频雪碧图地址的请求body
 */
model GetVideoPreviewSpriteURLRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  expireSec?: int64(name='expire_sec', default=900, description='expire_sec', example=15, format='int64', maximum=14400, minimum=1),
  fileId: string(name='file_id', description='file_id', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  referer?: string(name='referer'),
  revisionId?: string(name='revision_id', description='revision_id', example='6030dbcce499a7dad4b54ad7aa411e1535c6af40'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  signToken?: string(name='sign_token'),
}

/**
 * 获取视频雪碧图地址 url response
 */
model GetVideoPreviewSpriteURLResponse {
  col?: int64(name='col', description='col', example=10, format='int64'),
  count?: int64(name='count', description='count', example=4, format='int64'),
  frameCount?: int64(name='frame_count', description='frame_count', example=450, format='int64'),
  frameHeight?: int64(name='frame_height', description='frame_height', example=90, format='int64'),
  frameWidth?: int64(name='frame_width', description='frame_width', example=160, format='int64'),
  row?: int64(name='row', description='row', example=10, format='int64'),
  spriteUrlList?: [ string ](name='sprite_url_list', description='sprite_url_list', example='[https://ccp.data.aliyuncs.com/hz22%2F5d79219b0aa9a7c995a94a96993ba3205cd91c5a%2F5d79219bf3261a5d38744da0834ed489b677a27a?Expires=xxxOSSAccessKeyId=xxx&Signature=xxx&response-content-disposition=attachment%3Bfilename%3DtBiZAoJPC2c8b13450eda4292b7f5f8010618e078.txt]', items='{"type":"string"}'),
}

/**
 * 获取视频文件播放地址的请求body
 */
model GetVideoPreviewURLRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  audioTemplateId?: string(name='audio_template_id', description='audio_template_id', example='HQ'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  expireSec?: int64(name='expire_sec', default=900, description='expire_sec', example=15, format='int64', maximum=14400, minimum=1),
  fileId: string(name='file_id', description='file_id', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  referer?: string(name='referer'),
  revisionId?: string(name='revision_id', description='revision_id', example='6030dbcce499a7dad4b54ad7aa411e1535c6af40'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  signToken?: string(name='sign_token'),
  templateId?: string(name='template_id', description='template_id', example='SD'),
}

/**
 * 获取视频文件播放 url response
 */
model GetVideoPreviewURLResponse {
  previewUrl?: string(name='preview_url', description='preview_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d79219b0aa9a7c995a94a96993ba3205cd91c5a%2F5d79219bf3261a5d38744da0834ed489b677a27a?Expires=xxxOSSAccessKeyId=xxx&Signature=xxx&response-content-disposition=attachment%3Bfilename%3DtBiZAoJPC2c8b13450eda4292b7f5f8010618e078.txt'),
}

/**
 * get file from view
 */
model GetViewFileRequest {
  category: string(name='category', description='category', example='"album"'),
  driveId?: string(name='drive_id'),
  fileId?: string(name='file_id'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * Get view request
 */
model GetViewRequest {
  category: string(name='category', description='category', example='"album"'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * 
 */
model GrayscaleConfig {
  enabled?: boolean(name='enabled'),
  percentage?: int64(name='percentage', format='int64'),
}

/**
 * 
 */
model GroupConfig {
  autoAddRootGroupEnabled?: boolean(name='auto_add_root_group_enabled'),
  maxLevel?: int64(name='max_level', format='int64'),
  rootGroupId?: string(name='root_group_id'),
}

/**
 * 
 */
model GroupLogDetail {
  name?: string(name='name', description='name', example='abc'),
  parentGroupId?: string(name='parent_group_id', description='parent_group_id', example='123'),
  parentGroupName?: string(name='parent_group_name', description='parent_group_name', example='group2'),
  updateTo?: GroupLogSettingDetail(name='update_to'),
}

/**
 * 
 */
model GroupLogSettingDetail {
  name?: string(name='name', description='name', example='abc'),
  parentGroupId?: string(name='parent_group_id', description='parent_group_id', example='123'),
  parentGroupName?: string(name='parent_group_name', description='parent_group_name', example='group2'),
}

/**
 * complete file request
 */
model HostingCompleteFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath?: string(name='file_path'),
  forbidOverwrite?: boolean(name='forbid_overwrite', default=false, description='forbid_overwrite
type: boolean'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id'),
  uploadId?: string(name='upload_id', description='upload_id'),
}

/**
 * complete file response
 */
model HostingCompleteFileResponse {
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc?: string(name='crc', description='crc'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  filePath?: string(name='file_path', description='file_path', example='/a.jpg'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFilePath?: string(name='parent_file_path', description='parent_file_id', example='/', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  shareId?: string(name='share_id', description='share_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', pattern='[0-9]+'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * copy file request
 */
model HostingCopyFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  newName?: string(name='new_name', description='new_name', example='ccp.jpg', maxLength=1024, minLength=1),
  overwrite?: boolean(name='overwrite', default=false, description='overwrite
type: boolean'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
  toDriveId?: string(name='to_drive_id', description='to_drive_id', example='1', pattern='[0-9]+'),
  toParentFilePath: string(name='to_parent_file_path', description='to_parent_file_path', example='/a/b/c/'),
  toShareId?: string(name='to_share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6'),
}

/**
 * 文件拷贝 response
 */
model HostingCopyFileResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id', example='000e89fb-cf8f-11e9-8ab4-b6e980803a3b'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z-]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath?: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  shareId?: string(name='share_id', description='drive_id', example='test001', pattern='[a-z0-9A-Z]+'),
}

/**
 * create file request
 */
model HostingCreateFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  contentMd5?: string(name='content_md5', description='ContentMd5', example='E10ADC3949BA59ABBE56E057F20F883E'),
  contentType?: string(name='content_type', description='ContentType', example='application/json'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  forbidOverwrite?: boolean(name='forbid_overwrite', default=false, description='forbid_overwrite
type: boolean'),
  name: string(name='name', description='Name', example='ccp.jpg', maxLength=1024, minLength=1),
  parentFilePath: string(name='parent_file_path', description='parent_file_path'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id', description='share_id', pattern='[0-9a-zA-Z-]+'),
  size?: int64(name='size', description='Size', format='int64', minimum=0),
  type: string(name='type', description='Type', enum='file, folder', example='file'),
}

/**
 * Create file response
 */
model HostingCreateFileResponse {
  domainId?: string(name='domain_id', description='domain_id', example='domain', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath?: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', example='[', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id', description='share_id', example='1', pattern='[0-9]+'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
}

/**
 * 删除文件请求
 */
model HostingDeleteFileRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath: string(name='file_path', description='file_path', maxLength=1000, minLength=1),
  permanently?: boolean(name='permanently', description='permanently
type: false', example=false),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
}

/**
 * 删除文件 response
 */
model HostingDeleteFileResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id', example='000e89fb-cf8f-11e9-8ab4-b6e980803a3b'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath?: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  shareId?: string(name='share_id', description='share_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', pattern='[a-z0-9A-Z]+'),
}

/**
 * 批量删除文件 response
 */
model HostingDeleteFilesResponse {
  deletedFileIdList?: [ string ](name='deleted_file_id_list', description='deleted_file_id_list', example='', items='{"type":"string"}'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  shareId?: string(name='share_id', description='share_id', example='1', pattern='[0-9]+'),
}

/**
 * 获取文件下载地址的请求body
 */
model HostingGetDownloadUrlRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  expireSec?: int64(name='expire_sec', default=900, description='expire_sec', example=15, format='int64', maximum=115200, minimum=10),
  fileName?: string(name='file_name', description='file_name', example='ccp.jpg'),
  filePath: string(name='file_path', description='file_path', example='/a/b/c.jpg', maxLength=1000, minLength=1),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
  signToken?: string(name='sign_token'),
}

/**
 * 获取download url response
 */
model HostingGetDownloadUrlResponse {
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z07:00'),
  method?: string(name='method', description='method', example='GET'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d79219b0aa9a7c995a94a96993ba3205cd91c5a%2F5d79219bf3261a5d38744da0834ed489b677a27a?Expires=xxxOSSAccessKeyId=xxx&Signature=xxx&response-content-disposition=attachment%3Bfilename%3DtBiZAoJPC2c8b13450eda4292b7f5f8010618e078.txt'),
}

/**
 * 获取文件元数据
 */
model HostingGetFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath: string(name='file_path', description='file_id', maxLength=1000, minLength=1),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
  signToken?: string(name='sign_token'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 获取文件元数据response
 */
model HostingGetFileResponse {
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  filePath?: string(name='file_path', description='file_path', example='/a.jpg'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFilePath?: string(name='parent_file_path', description='parent_file_id', example='/', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  shareId?: string(name='share_id', description='share_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', pattern='[0-9]+'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 获取文件安全地址的请求body
 */
model HostingGetSecureUrlRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  expireSec?: int64(name='expire_sec', default=60, description='expire_sec 单位秒', example=60, format='int64'),
  filePath: string(name='file_path', description='file_path', example='/a/b/c.jpg', maxLength=1000, minLength=1),
  secureIp?: string(name='secure_ip', description='secure_ip', example='192.168.1.1/24'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
}

/**
 * 获取secure url response
 */
model HostingGetSecureUrlResponse {
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z07:00'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d79219b0aa9a7c995a94a96993ba3205cd91c5a%2F5d79219bf3261a5d38744da0834ed489b677a27a?Expires=xxxOSSAccessKeyId=xxx&Signature=xxx&response-content-disposition=attachment%3Bfilename%3DtBiZAoJPC2c8b13450eda4292b7f5f8010618e078.txt'),
}

/**
 * 获取文件上传URL
 */
model HostingGetUploadUrlRequest {
  contentMd5?: string(name='content_md5', description='content_md5', example='E10ADC3949BA59ABBE56E057F20F883E', maxLength=32),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='upload_part_list', example='', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id', description='share_id', example='1', pattern='[0-9a-zA-Z-]+'),
  uploadId: string(name='upload_id', description='upload_id', example='3920F2BE4D9446D6967E2ED505A97EFD'),
}

/**
 * Get UploadUrl Response
 */
model HostingGetUploadUrlResponse {
  createAt?: string(name='create_at', description='created_at', example='2019-09-11T16:34:36.977Z'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath?: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', example='', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  uploadId?: string(name='upload_id', description='upload_id', example='F3C25CDFA5C74ECB8DE32672F6211FD4'),
}

/**
 * list file request
 */
model HostingListFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int64(name='limit', default=50, description='limit', example=10, format='int64', maximum=200, minimum=0),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  parentFilePath: string(name='parent_file_path', description='ParentFilePath', example='/a/b/c.jpg'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id', example='1', pattern='[0-9a-zA-Z-]+'),
  signToken?: string(name='sign_token'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * List file response
 */
model HostingListFileResponse {
  items?: [ BaseHostingFileResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseHostingFileResponse"}', maxItems=100),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
}

/**
 * 列举uploadID对应的已上传分片
 */
model HostingListUploadedPartRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  limit?: int64(name='limit', default=1000, description='limit', example=1, format='int64', maximum=1000, minimum=1),
  partNumberMarker?: int64(name='part_number_marker', description='part_number_marker', example=1, format='int64', minimum=1),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
  uploadId?: string(name='upload_id', description='upload_id', example='00668396C0814D818D90F0A92B04B355'),
}

/**
 * 获取签名 response
 */
model HostingListUploadedPartResponse {
  filePath?: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  nextPartNumberMarker?: string(name='next_part_number_marker', description='next_part_number_marker', example='4'),
  uploadId?: string(name='upload_id', description='upload_id', example='F3C25CDFA5C74ECB8DE32672F6211FD4'),
  uploadedParts?: [ UploadPartInfo ](name='uploaded_parts', description='uploaded_parts', example='', items='{"$ref":"#/definitions/UploadPartInfo"}'),
}

/**
 * 文件移动请求
 */
model HostingMoveFileRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath?: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  newName?: string(name='new_name', description='new_name', example='ccp.jpg'),
  overwrite?: boolean(name='overwrite', default=false, description='overwrite
type: boolean'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
  toParentFilePath?: string(name='to_parent_file_path', description='file_path', example='/a/b/c/'),
}

/**
 * 文件移动 response
 */
model HostingMoveFileResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id', example='000e89fb-cf8f-11e9-8ab4-b6e980803a3b'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z-]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath?: string(name='file_path', description='file_path', example='/a/b/c.jpg'),
  shareId?: string(name='share_id', description='drive_id', example='test001', pattern='[a-z0-9A-Z]+'),
}

/**
 * search file response
 */
model HostingSearchFileResponse {
  items?: [ BaseHostingFileResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseHostingFileResponse"}', maxItems=100),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
}

/**
 * 更新文件元数据 response
 */
model HostingUpdateFileMetaResponse {
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='domain_id', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  filePath?: string(name='file_path', description='file_path', example='/a.jpg'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFilePath?: string(name='parent_file_path', description='parent_file_id', example='/', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  shareId?: string(name='share_id', description='share_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', pattern='[0-9]+'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 获取视频DRM License
 */
model HostingVideoDRMLicenseRequest {
  drmType: string(name='drmType', description='drmType', example='widevine,fairplay'),
  licenseRequest: string(name='licenseRequest', description='licenseRequest', example='xxx'),
}

/**
 * DRM License response
 */
model HostingVideoDRMLicenseResponse {
  data: string(name='data', description='drm_data', example='xxx'),
  deviceInfo: string(name='device_info', description='device_info', example='xxx'),
  states: int64(name='states', description='states', example=0, format='int64'),
}

/**
 * 获取视频分辨率列表
 */
model HostingVideoDefinitionRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath: string(name='file_path', description='file_path', example='/a/b/c.mp4', maxLength=1000, minLength=1),
  protectionScheme?: string(name='protection_scheme', default='none', description='protection_scheme', example='cbcs'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
}

/**
 * 转码接口response
 */
model HostingVideoDefinitionResponse {
  definitionList?: [ string ](name='definition_list', description='definition_list', example='', items='{"type":"string"}'),
  frameRate?: string(name='frame_rate', description='frame_rate', example='30000/1001'),
}

/**
 * 获取视频的m3u8文件
 */
model HostingVideoM3U8Request {
  definition?: string(name='definition', default='Original', description='definition', example='Original'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  expireSec?: int64(name='expire_sec', default=60, description='expire_sec', example=60, format='int64', maximum=86400, minimum=60),
  filePath: string(name='file_path', description='file_path', example='/a/b/c.mp4', maxLength=1000, minLength=1),
  protectionScheme?: string(name='protection_scheme', default='none', description='protection_scheme', example='cbcs'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
  signToken: string(name='sign_token', description='sign_token', example='a8swq28ue21has22das213eds'),
}

/**
 * 启动视频转码请求
 */
model HostingVideoTranscodeRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  filePath: string(name='file_path', description='file_path', example='/a/b/c.mp4', maxLength=1000, minLength=1),
  hlsTime?: int64(name='hls_time', description='hls_time', example=10, format='int64'),
  protectionScheme?: string(name='protection_scheme', default='none', description='protection_scheme', example='cbcs'),
  remarks?: string(name='remarks', description='remarks', example='{"userID":"xxx"}'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6', pattern='[0-9a-zA-Z-]+'),
  transcode?: boolean(name='transcode', default=false, description='transcode', example=true),
}

/**
 * 转码接口response
 */
model HostingVideoTranscodeResponse {
  definitionList?: [ string ](name='definition_list', description='definition_list', example='', items='{"type":"string"}'),
  duration?: int64(name='duration', description='duration', example=100, format='int64'),
  hlsTime?: int64(name='hls_time', description='hls_time', example=10, format='int64'),
}

/**
 * 
 */
model IDPermission {
  ActionList?: [ ActionItem ](name='ActionList', items='{"$ref":"#/definitions/ActionItem"}'),
  Collection?: string(name='Collection'),
  Condition?: Condition(name='Condition'),
  CreatedAt?: int64(name='CreatedAt', format='int64'),
  Deleted?: string(name='Deleted'),
  DisinheritSubGroup?: boolean(name='DisinheritSubGroup'),
  DomainID?: string(name='DomainID'),
  Effect?: string(name='Effect'),
  ExpireTime?: int64(name='ExpireTime', format='int64'),
  IdentityID?: string(name='IdentityID'),
  IdentityType?: string(name='IdentityType'),
  Resource?: string(name='Resource'),
  ResourceType?: string(name='ResourceType'),
  Roles?: [ string ](name='Roles', items='{"type":"string"}'),
  SequenceNumber?: int64(name='SequenceNumber', format='int64'),
  UpdatedAt?: int64(name='UpdatedAt', format='int64'),
  UpdatedBy?: string(name='UpdatedBy'),
  UserTags?: [ string ](name='UserTags', items='{"type":"string"}'),
}

/**
 * 
 */
model IPCondition {
  clientIp?: [ string ](name='client_ip', items='{"type":"string"}'),
}

/**
 * 表示用户或团队
 */
model Identity {
  identityId: string(name='identity_id', description='用户或团队的ID', example='a1f***2db'),
  identityName?: string(name='identity_name', description='显示名称', example='ZhangSan'),
  identityType: string(name='identity_type', description='类型，目前可传：IT_User(用户)、IT_Group(团队)', example='IT_User'),
}

/**
 * Identity benefit package response
 */
model IdentityBenefitPkgResponse {
  benefitList?: [ BenefitBaseResponse ](name='benefit_list', description='权益包中的权益列表', items='{"$ref":"#/definitions/BenefitBaseResponse"}'),
  benefitPkgId?: string(name='benefit_pkg_id', description='权益包的唯一标识', example='value_add'),
  deliveryInfoList?: [ BenefitPkgDeliveryInfoResponse ](name='delivery_info_list', description='权益包的下发信息', items='{"$ref":"#/definitions/BenefitPkgDeliveryInfoResponse"}'),
  name?: string(name='name', description='权益包的名称', example='增值服务权益包'),
}

/**
 * 人脸分组信息
 */
model ImageFaceGroupResponse {
  createdAt?: string(name='created_at', description='人脸分组生成时间', example='2019-02-20T09:35:51.057Z'),
  groupCoverFaceBoundary?: FaceBoundary(name='group_cover_face_boundary'),
  groupCoverFileId?: string(name='group_cover_file_id', description='group_cover_file_id'),
  groupCoverHeight?: int64(name='group_cover_height', description='group_cover_height', format='int64'),
  groupCoverUrl?: string(name='group_cover_url', description='人脸分组封面头像地址', example='http://imm-dev-wmt/facegroup/05.jpg?x-oss-process=xxx'),
  groupCoverWidth?: int64(name='group_cover_width', description='group_cover_width', format='int64'),
  groupId?: string(name='group_id', description='人脸分组 ID', example='abc'),
  groupName?: string(name='group_name', description='人脸分组名称', example='abc'),
  imageCount?: int64(name='image_count', description='照片个数', example=2, format='int64'),
  remarks?: string(name='remarks', description='remarks'),
  remarksArray?: [ string ](name='remarks_array', description='remarks_array', items='{"type":"string"}'),
  updatedAt?: string(name='updated_at', description='人脸分组修改时间', example='2019-02-20T09:35:51.057Z'),
}

/**
 * 人脸分组数组
 */
model ImageFaceGroupsResponse {
  faceGroups?: [ ImageFaceGroupResponse ](name='face_groups', items='{"$ref":"#/definitions/ImageFaceGroupResponse"}'),
}

/**
 * 
 */
model ImageMediaMetadata {
  height?: int64(name='height', description='height', example=2448, format='int64'),
  takenAt?: string(name='taken_at', description='taken_at', example='Timestamp(format="%Y-%m-%dT%H:%M:%SZ")'),
  width?: int64(name='width', description='width：', example=3264, format='int64'),
}

/**
 * 
 */
model ImageMediaResponse {
  addressLine?: string(name='address_line', description='address_line', example='北京市昌平区白各庄新村路'),
  city?: string(name='city', description='city', example='杭州'),
  country?: string(name='country', description='country', example='中国'),
  croppingSuggestion?: [ CroppingSuggestionItem ](name='cropping_suggestion', description='cropping_suggestion', items='{"$ref":"#/definitions/CroppingSuggestionItem"}'),
  district?: string(name='district', description='district', example='余杭区'),
  exif?: string(name='exif', description='exif json string'),
  faces?: string(name='faces', description='faces json string'),
  facesThumbnail?: [ FaceThumbnail ](name='faces_thumbnail', description='faces_thumbnail_list', items='{"$ref":"#/definitions/FaceThumbnail"}'),
  height?: int64(name='height', default=0, description='height', example=720, format='int64'),
  imageQuality?: ImageQuality(name='image_quality'),
  imageTags?: [ SystemTag ](name='image_tags', description='system_tags', items='{"$ref":"#/definitions/SystemTag"}'),
  location?: string(name='location', description='location', example='40.110333,116.349311'),
  province?: string(name='province', description='province', example='浙江省'),
  time?: string(name='time', description='time', format='date-time'),
  township?: string(name='township', description='township', example='沙河镇'),
  width?: int64(name='width', default=0, description='width', example=1024, format='int64'),
}

/**
 * 
 */
model ImageQuality {
  clarity?: double(name='clarity', format='double'),
  clarityScore?: double(name='clarity_score', format='double'),
  color?: double(name='color', format='double'),
  colorScore?: double(name='color_score', format='double'),
  compositionScore?: double(name='composition_score', format='double'),
  contrast?: double(name='contrast', format='double'),
  contrastScore?: double(name='contrast_score', format='double'),
  exposure?: double(name='exposure', format='double'),
  exposureScore?: double(name='exposure_score', format='double'),
  overallScore?: double(name='overall_score', format='double'),
}

/**
 * 
 */
model KeepUserTags {
  all?: boolean(name='all'),
  keys?: [ string ](name='keys', items='{"type":"string"}'),
}

/**
 * 
 */
model LDAPSyncConfig {
  cron?: string(name='cron'),
  enabled?: boolean(name='enabled'),
  groupFilter?: string(name='group_filter'),
  groupObjectClass?: string(name='group_object_class'),
  userFilter?: string(name='user_filter'),
  userObjectClass?: string(name='user_object_class'),
}

/**
 * 
 */
model LdapConfig {
  adminDn?: string(name='admin_dn'),
  adminPassword?: string(name='admin_password'),
  baseDn?: string(name='base_dn'),
  displayNameKey?: string(name='display_name_key'),
  globalUid?: string(name='global_uid'),
  host?: string(name='host'),
  port?: int64(name='port', format='int64'),
  syncConfig?: LDAPSyncConfig(name='sync_config'),
  type?: string(name='type'),
  uid?: string(name='uid'),
  version?: string(name='version'),
}

/**
 * 
 */
model LinkInfo {
  extra?: string(name='extra', description='额外的信息，比如type为mobile时，此字段为国家编号，不填默认86', example='1'),
  identity?: string(name='identity', description='当前用户已存在的登录标识', example='15208345000'),
  type?: string(name='type', description='当前用户已存在的登录方式', example='mobile'),
}

/**
 * 
 */
model LinkInfoListResponse {
  items: [ LinkInfoResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/LinkInfoResponse"}'),
}

/**
 * 
 */
model LinkInfoResponse {
  authenticationType: string(name='authentication_type', description='认证类型', example='mobile'),
  createdAt: int64(name='created_at', description='创建时间', example=1556163159820, format='int64'),
  displayName: string(name='display_name', description='显示名称', example='display_name'),
  domainId: string(name='domain_id', description='Domain ID', example='5000'),
  extra?: string(name='extra', description='额外的信息，比如type为mobile时，此字段为国家编号，不填默认86', example='1'),
  identity: string(name='identity', description='唯一身份标识', example='15208345000'),
  lastLoginTime: int64(name='last_login_time', description='最后登录时间', example=1556163159820, format='int64'),
  status: string(name='status', description='状态', example='normal'),
  userId: string(name='user_id', description='用户ID', example='00016a587b62b50003deea299a4f5b50'),
}

/**
 * 
 */
model ListAppsRequest {
  httpheaders?: map[string]string,
  limit?: int32(name='limit', default=50, description='返回结果数据', example=100, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='下次查询游标', example='ncsajnsalsa='),
}

/**
 * 
 */
model ListAppsResponse {
  items: [ GetAppResponse ](name='items', description='App 列表', example='', items='{"$ref":"#/definitions/GetAppResponse"}'),
  nextMarker?: string(name='next_marker', description='App 分批查询游标', example='ncsajnsalsa='),
}

/**
 * list_file_by_anonymous request
 */
model ListByAnonymousRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int64(name='limit', description='limit', example=50, format='int64', maximum=100, minimum=1),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  parentFileId: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=4, pattern='[a-z0-9]{1,50}'),
  referer?: string(name='referer'),
  shareId: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
  signToken?: string(name='sign_token'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * list_file_by_anonymous response
 */
model ListByAnonymousResponse {
  items?: [ BaseFileAnonymousResponse ](name='items', description='items', items='{"$ref":"#/definitions/BaseFileAnonymousResponse"}', maxItems=100),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
  punishedFileCount?: int64(name='punished_file_count', description='punished_file_count', format='int64'),
}

/**
 * list domain cors response
 */
model ListDomainCORSRuleResponse {
  corsRuleList?: [ CorsRule ](name='cors_rule_list', description='cors rule 列表', items='{"$ref":"#/definitions/CorsRule"}'),
  domainId?: string(name='domain_id', description='Domain ID', example='sz111'),
}

/**
 * list domain request
 */
model ListDomainsRequest {
  httpheaders?: map[string]string,
  limit?: int32(name='limit', description='分页大小', example=100, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='查询游标', example='abcd'),
  parentDomainId?: string(name='parent_domain_id'),
}

/**
 * list domain response
 */
model ListDomainsResponse {
  items?: [ BaseDomainResponse ](name='items', description='domain 列表', example='', items='{"$ref":"#/definitions/BaseDomainResponse"}'),
  nextMarker?: string(name='next_marker', description='下次分页查询游标', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
}

/**
 * List drive request
 */
model ListDriveRequest {
  limit?: int32(name='limit', default=100, description='每页大小限制', example=10, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='翻页标记, 接口返回的标记值', example='marker'),
  owner?: string(name='owner', description='所属者', example='abc'),
  ownerType?: string(name='owner_type', description='owner_type
所述者类型', example='user'),
  subdomainId?: string(name='subdomain_id', description='Subdomain ID', example='hz-123'),
}

/**
 * list drive response
 */
model ListDriveResponse {
  items?: [ BaseDriveResponse ](name='items', description='Drive 列表', items='{"$ref":"#/definitions/BaseDriveResponse"}'),
  nextMarker?: string(name='next_marker', description='翻页标记', example='marker'),
}

/**
 * 
 */
model ListFileActivityRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='DriveID', example='"1001"'),
  fileId?: string(name='file_id', description='FileID', example='"6020d97b1e5d179e7d994348b0ee1eb789cfa8d3"'),
  limit?: int32(name='limit', description='Limit, default', format='int32'),
  marker?: string(name='marker', description='Marker'),
}

/**
 * list file activity response
 */
model ListFileActivityResponse {
  activities?: [ FileActivity ](name='activities', description='Activities', items='{"$ref":"#/definitions/FileActivity"}'),
  nextMarker?: string(name='next_marker', description='NextMarker'),
}

/**
 * 列举文件
 */
model ListFileByCustomIndexKeyRequest {
  Starred?: boolean(name='Starred', description='starred', enum='false, true', example=false),
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  category?: string(name='category', description='category', enum='image, video, music, doc, other', example='image'),
  customIndexKey: string(name='custom_index_key', description='custom_index_key'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode'),
  fields?: string(name='fields', description='fields', example='*'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int64(name='limit', default=50, description='limit', example=10, format='int64', maximum=200, minimum=0),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  orderDirection?: string(name='order_direction', description='order_direction', enum='ASC, DESC', example='ASC'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  signToken?: string(name='sign_token'),
  status?: string(name='status', default='available', description='status', enum='uploading, available', example='available'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 获取增量文件操作记录
 */
model ListFileDeltaRequest {
  cursor?: string(name='cursor', description='cursor 游标', example='abc'),
  disableCharacteristicHash?: boolean(name='disable_characteristic_hash', description='disable_characteristic_hash
default false', example=true),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int32(name='limit', description='limit
default 100', example=100, format='int32'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  syncRootId?: string(name='sync_root_id', description='sync_root_id'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * list file op response
 */
model ListFileDeltaResponse {
  cursor?: string(name='cursor', description='cursor', example='abc'),
  hasMore?: boolean(name='has_more', description='has_more', example=false),
  items?: [ FileDeltaResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/FileDeltaResponse"}', maxItems=100),
}

/**
 * 列举回收站
 */
model ListFileInRecycleBinRequest {
  Starred?: boolean(name='Starred', description='starred', enum='false, true', example=false),
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  all?: boolean(name='all', default=true, description='all', enum='false, true', example=false),
  category?: string(name='category', description='category', enum='image, video, music, doc, other', example='image'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fields?: string(name='fields', description='fields', example='*'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int64(name='limit', default=50, description='limit', example=10, format='int64', maximum=200, minimum=0),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  orderBy?: string(name='order_by', description='order_by', enum='update_time, name', example='name'),
  orderDirection?: string(name='order_direction', description='order_direction', enum='ASC, DESC', example='ASC'),
  parentFileId?: string(name='parent_file_id', description='ParentFileID', example='root', maxLength=50, minLength=4, pattern='[a-z0-9.-_]{1,50}'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  signToken?: string(name='sign_token'),
  status?: string(name='status', default='available', description='status', enum='uploading, available', example='available'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * ListFileInRecycleBinResponse
 */
model ListFileInRecycleBinResponse {
  items?: [ BaseCCPFileResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseCCPFileResponse"}', maxItems=100),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
}

/**
 * 列举文件
 */
model ListFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  all?: boolean(name='all', default=true, description='all', enum='false, true', example=false),
  category?: string(name='category', description='category', enum='image, video, music, doc, other', example='image'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fields?: string(name='fields', description='fields', example='*'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int64(name='limit', default=50, description='limit', example=10, format='int64', maximum=200, minimum=0),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  orderBy?: string(name='order_by', description='order_by', enum='update_time, name', example='name'),
  orderDirection?: string(name='order_direction', description='order_direction', enum='ASC, DESC', example='ASC'),
  parentFileId: string(name='parent_file_id', description='ParentFileID', example='root', maxLength=50, minLength=4, pattern='[a-z0-9.-_]{1,50}'),
  parentFileIdPath?: string(name='parent_file_id_path'),
  referer?: string(name='referer'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
  signToken?: string(name='sign_token'),
  starred?: boolean(name='starred', description='starred', enum='false, true', example=false),
  status?: string(name='status', default='available', description='status', enum='uploading, available', example='available'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * List file response
 */
model ListFileResponse {
  items?: [ BaseCCPFileResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseCCPFileResponse"}', maxItems=100),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
  punishedFileCount?: int64(name='punished_file_count', description='punished_file_count', format='int64'),
}

/**
 * list file view ids
 */
model ListFileViewsRequest {
  category?: string(name='category'),
  driveId?: string(name='drive_id'),
  fileId?: string(name='file_id'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
}

/**
 * List identity benefit package request
 */
model ListIdentityBenefitPkgRequest {
  benefitIdList?: [ string ](name='benefit_id_list', description='查询特定的benefit ID，include_benefit为true时有效。 如果为空，不做任何过滤；如果不为空，只返回包含特定benefit ID的权益包；也只返回权益包中特定的权益信息。', example='drive_size_list', items='{"type":"string"}'),
  domainId?: string(name='domain_id', description='domain ID', example='sz100'),
  identityId: string(name='identity_id', description='实体的唯一标识，如 userID', example='"user1"'),
  identityType: string(name='identity_type', description='实体类型，当前支持user类型实体', example='user'),
  includeBenefit?: boolean(name='include_benefit', description='是否返回权益包中的权益，默认为false', example=false),
  includeExpired?: boolean(name='include_expired', description='是否返回已经超期的权益包，默认为false', example=false),
}

/**
 * List identity benefit package response
 */
model ListIdentityBenefitPkgResponse {
  items?: [ IdentityBenefitPkgResponse ](name='items', items='{"$ref":"#/definitions/IdentityBenefitPkgResponse"}'),
}

/**
 * list identity to benefit pkg mapping request
 */
model ListIdentityToBenefitPkgMappingRequest {
  domainId?: string(name='domain_id', description='domain ID', example='sz100'),
  identityId: string(name='identity_id', description='实体的唯一标识，如 userID', example='"user1"'),
  identityType: string(name='identity_type', description='实体类型，当前支持user类型实体', example='user'),
  includeExpired?: boolean(name='include_expired', description='是否返回已经超期的权益包，默认为false', example=false),
}

/**
 * List identity to benefit pkg mapping info
 */
model ListIdentityToBenefitPkgMappingResponse {
  items?: [ BaseIdentityToBenefitPkgMappingResponse ](name='items', items='{"$ref":"#/definitions/BaseIdentityToBenefitPkgMappingResponse"}'),
}

/**
 * List image address groups request
 */
model ListImageAddressGroupsRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  limit?: int32(name='limit', default=100, description='每页大小限制', example=10, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='翻页标记', example='marker'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * List image face groups request
 */
model ListImageFaceGroupsRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  limit?: int64(name='limit', default=100, description='每页大小限制', example=10, format='int64', maximum=100, minimum=1),
  marker?: string(name='marker', description='翻页标记', example='marker'),
  remarks?: string(name='remarks'),
}

/**
 * List image tags request
 */
model ListImageTagsRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 列举用户管理的共享文件列表
 */
model ListMangeSharingFileRequest {
  creatorList?: [ string ](name='creator_list', description='查询的用户列表，传入用户ID列表，不传默认查询所有有权限管理的共享', example='', items='{"type":"string"}'),
  limit: int32(name='limit', description='查询返回的记录数', example=100, format='int32'),
  marker?: string(name='marker', description='上次查询返回的游标', example='""'),
  subdomainId?: string(name='subdomain_id'),
}

/**
 * List my drive request
 */
model ListMyDriveRequest {
  limit?: int32(name='limit', default=100, description='每页大小限制', example=10, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='翻页标记, 接口返回的标记值', example='marker'),
}

/**
 * 列举当前用户收到的共享文件列表
 */
model ListReceivedFileRequest {
  limit: int32(name='limit', description='查询返回的记录数', example=100, format='int32'),
  marker?: string(name='marker', description='上次查询返回的游标', example='""'),
  subdomainId?: string(name='subdomain_id'),
}

/**
 * 列举版本
 */
model ListRevisionRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fields?: string(name='fields', default='*', description='fields', example='*'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=4, pattern='[a-z0-9.-_]{1,50}'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int64(name='limit', default=50, description='limit', example=10, format='int64', maximum=100, minimum=1),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  query?: string(name='query', description='query'),
  referer?: string(name='referer'),
  signToken?: string(name='sign_token'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * 列举版本response
 */
model ListRevisionResponse {
  items?: [ BaseRevisionResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseRevisionResponse"}', maxItems=100),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
}

/**
 * list_share_link request
 */
model ListShareLinkRequest {
  category?: string(name='category', description='category', example='file'),
  creator?: string(name='creator', description='creator', example='tom'),
  includeCancelled?: boolean(name='include_cancelled', description='include_cancelled', example=true),
  limit?: int32(name='limit', description='limit', example=50, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  orderBy?: string(name='order_by', description='order_by', enum='share_name, description, created_at, updated_at', example='share_name'),
  orderDirection?: string(name='order_direction', description='order_direction', enum='ASC, DESC', example='ASC'),
  viewId?: string(name='view_id', description='view_id', example='"8a853c431d854073a12590c3c9090bac6197982c"'),
}

/**
 * list_share_link response
 */
model ListShareLinkResponse {
  items?: [ BaseShareLinkResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseShareLinkResponse"}'),
  nextMarker?: string(name='next_marker', description='next_marker'),
}

/**
 * list share request
 */
model ListShareRequest {
  creator?: string(name='creator', description='creator', example='tom'),
  driveId?: string(name='drive_id', example='1', pattern='[0-9]+'),
  limit?: int32(name='limit', description='limit', example=50, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='marker'),
  owner?: string(name='owner', description='Owner', example='jack'),
  ownerType?: string(name='owner_type', description='owner_type', example='group'),
  shareFilePath?: string(name='share_file_path', description='share_file_path', example='/a/b/'),
}

/**
 * List share response
 */
model ListShareResponse {
  items?: [ BaseShareResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseShareResponse"}'),
  nextMarker?: string(name='next_marker', description='next_marker'),
}

/**
 * 列举当前用户共享的文件列表
 */
model ListSharingFileRequest {
  limit: int32(name='limit', description='查询返回的记录数', example=100, format='int32'),
  marker?: string(name='marker', description='上次查询返回的游标', example='""'),
  subdomainId?: string(name='subdomain_id'),
}

/**
 * list store file
 */
model ListStoreFileRequest {
  limit?: int64(name='limit', default=100, description='limit', example=50, format='int64', maximum=1000, minimum=1),
  marker?: string(name='marker', description='marker'),
  parentFilePath?: string(name='parent_file_path', description='parent_file_path'),
  storeId?: string(name='store_id', description='store_id', example='xxx'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
}

/**
 * List storage file
 */
model ListStoreFileResponse {
  items?: [ StoreFile ](name='items', description='items
file list', example='', items='{"$ref":"#/definitions/StoreFile"}'),
  nextMarker?: string(name='next_marker'),
}

/**
 * list storage file
 */
model ListStoreRequest {
  domainId?: string(name='domain_id', description='domain_id', example='10'),
}

/**
 * List storage
 */
model ListStoreResponse {
  items?: [ StoreItemResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/StoreItemResponse"}'),
}

/**
 * 
 */
model ListStoresRequest {
  httpheaders?: map[string]string,
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
}

/**
 * 
 */
model ListStoresResponse {
  items: [ Store ](name='items', description='Store 列表', example='', items='{"$ref":"#/definitions/Store"}'),
}

/**
 * 
 */
model ListSubdomainsRequest {
  limit?: int32(name='limit', description='数量，默认为50', format='int32'),
  marker?: string(name='marker', description='分页游标，可从 response 中获取'),
}

/**
 * 
 */
model ListSubdomainsResponse {
  items: [ BaseSubdomainResponse ](name='items', description='分页的 subdomain 数据', items='{"$ref":"#/definitions/BaseSubdomainResponse"}'),
  nextMarker: string(name='next_marker', description='分页游标，可以用作下次list的起点', example='"OGZlODBmMWQtM2RiMi00MjA1LTg2NDktY2NkOThkMmI5NmE5"'),
}

/**
 * 列举uploadID对应的已上传分片
 */
model ListUploadedPartRequest {
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  fileIdPath?: string(name='file_id_path'),
  limit?: int64(name='limit', default=1000, description='limit', example=1, format='int64', maximum=1000, minimum=1),
  partNumberMarker?: int64(name='part_number_marker', description='part_number_marker', example=1, format='int64', minimum=1),
  shareId?: string(name='share_id'),
  uploadId?: string(name='upload_id', description='upload_id', example='00668396C0814D818D90F0A92B04B355'),
}

/**
 * 获取签名 response
 */
model ListUploadedPartResponse {
  driveId?: string(name='drive_id'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  nextPartNumberMarker?: string(name='next_part_number_marker', description='next_part_number_marker', example='4'),
  parallelUpload?: boolean(name='parallel_upload'),
  uploadId?: string(name='upload_id', description='upload_id', example='F3C25CDFA5C74ECB8DE32672F6211FD4'),
  uploadedParts?: [ UploadPartInfo ](name='uploaded_parts', description='uploaded_parts', example='', items='{"$ref":"#/definitions/UploadPartInfo"}'),
}

/**
 * list view file
 */
model ListViewFilesRequest {
  category: string(name='category', description='category', example='"album"'),
  fields?: string(name='fields'),
  filter?: string(name='filter'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int32(name='limit', format='int32'),
  marker?: string(name='marker'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  orderBy?: string(name='order_by'),
  orderDirection?: string(name='order_direction'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  urlExpireSec?: int32(name='url_expire_sec', format='int32'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * List views request
 */
model ListViewsRequest {
  category: string(name='category', description='category', example='"album"'),
  limit?: int32(name='limit', default=50, description='每页大小限制', example=10, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  orderBy?: string(name='order_by', description='order_by', example='"abc"'),
  orderDirection?: string(name='order_direction', description='order_direction', enum='ASC, DESC', example='ASC'),
  owner: string(name='owner', description='owner', example='"123"'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
}

/**
 * 实时转码meta响应
 */
model LiveTranscodingMetaResponse {
  tsPreCount?: int64(name='ts_pre_count', description='ts_pre_count', example=3, format='int64'),
  tsSegment?: int64(name='ts_segment', description='ts_segment', example=10, format='int64'),
  tsTotalCount?: int64(name='ts_total_count', description='ts_total_count', example=11, format='int64'),
}

/**
 * 
 */
model LiveTranscodingSubtitleTaskResponse {
  language?: string(name='language', description='language, 字幕语言', enum='chi, eng', example='chi'),
  status?: string(name='status', description='status', enum='running,  finished', example='finished'),
  url?: string(name='url', description='url, finished 的时候才存在', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 实时转码task响应
 */
model LiveTranscodingTaskResponse {
  keepOriginalResolution?: boolean(name='keep_original_resolution', description='keep_original_resolution 转码后的视频分辨率是否保持原画(template分辨率大于当前视频)', example=true),
  previewUrl?: string(name='preview_url', description='preview_url, 视频片段预览播放地址', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  stage?: string(name='stage', description='stage, 实时转码内部状态(Deprecated)', enum='stage_all, stage_pre, stage_none', example='stage_pre'),
  status?: string(name='status', description='status, 转码状态', example='finished'),
  templateHeight?: int64(name='template_height', description='template_height', example=720, format='int64'),
  templateId?: string(name='template_id', description='template_id, 转码模板id', example='264_720p'),
  templateName?: string(name='template_name', description='template_name, 模板文案id', example='HD'),
  templateWidth?: int64(name='template_width', description='template_width', example=1280, format='int64'),
  url?: string(name='url', description='url, 视频播放地址', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 
 */
model LogDetail {
  accountLogDetail?: AccountLogDetail(name='account_log_detail'),
  auditMgmtLogDetail?: AuditMgmtLogDetail(name='audit_mgmt_log_detail'),
  driveLogDetail?: DriveLogDetail(name='drive_log_detail'),
  entMgmtLogDetail?: EntMgmtLogDetail(name='ent_mgmt_log_detail'),
  fileLogDetail?: FileLogDetail(name='file_log_detail'),
  groupLogDetail?: GroupLogDetail(name='group_log_detail'),
  loginMgmtLogDetail?: LoginMgmtLogDetail(name='login_mgmt_log_detail'),
  membershipLogDetail?: MembershipLogDetail(name='membership_log_detail'),
  roleLogDetail?: RoleLogDetail(name='role_log_detail'),
  securityLogDetail?: SecurityLogDetail(name='security_log_detail'),
  shareLinkLogDetail?: ShareLinkLogDetail(name='share_link_log_detail'),
  shareLogDetail?: ShareLogDetail(name='share_log_detail'),
  userLogDetail?: UserLogDetail(name='user_log_detail'),
}

/**
 * 
 */
model LoginMgmtLogDetail {
  appId?: string(name='app_id', description='app_id', example='"app123"'),
  dingSyncConfig?: DingSyncConfig(name='ding_sync_config'),
  enable?: boolean(name='enable', description='enable', example=true),
  ldapConfig?: LdapConfig(name='ldap_config'),
  wechatSyncConfig?: WeChatSyncConfig(name='wechat_sync_config'),
}

/**
 * 
 */
model MediaPlayInfoTemplate {
  status?: string(name='status', description='status', enum='finished, failed, running', example='finished'),
  templateId?: string(name='template_id', description='template_id', example='"HD"'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 
 */
model MembershipLogDetail {
  groupId?: string(name='group_id', description='group_id', example='123'),
  groupName?: string(name='group_name', description='group_name', example='group1'),
  memberName?: string(name='member_name', description='member_name', example='user1'),
  memberType?: string(name='member_type', description='member_type', enum='user,  group', example='user'),
}

/**
 * Merge face group request
 */
model MergeFaceGroupRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  fromGroupId: string(name='from_group_id', description='from_group_id', example='abc'),
  toGroupId: string(name='to_group_id', description='to_group_id', example='bcd'),
}

/**
 * 
 */
model MoveDetail {
  srcParentFileId?: string(name='src_parent_file_id', description='SrcParentFileID'),
  tgtParentFileId?: string(name='tgt_parent_file_id', description='TgtParentFileID'),
}

/**
 * 文件移动请求
 */
model MoveFileRequest {
  autoRename?: boolean(name='auto_rename'),
  categoryList?: [ string ](name='category_list', items='{"type":"string"}'),
  checkNameMode?: string(name='check_name_mode', default='ignore', description='check_name_mode', enum='ignore, auto_rename, refuse'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  fileIdPath?: string(name='file_id_path'),
  newName?: string(name='new_name', description='new_name', example='ccp.jpg', maxLength=1024, minLength=1),
  shareId?: string(name='share_id'),
  toDriveId?: string(name='to_drive_id', description='to_drive_id', example='1', pattern='[0-9]+'),
  toParentFileId: string(name='to_parent_file_id', description='to_parent_file_id', example='root', maxLength=50, minLength=4),
  toShareId?: string(name='to_share_id', example='1', pattern='[0-9]+'),
}

/**
 * 文件移动 response
 */
model MoveFileResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id', example='000e89fb-cf8f-11e9-8ab4-b6e980803a3b'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  exist?: boolean(name='exist', description='exist
type: boolean', example=false),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
}

/**
 * 
 */
model NameCheckResult {
  existFileId?: string(name='exist_file_id'),
  existFileType?: string(name='exist_file_type'),
}

/**
 * OfficeEditConfig 文档编辑配置
 */
model OfficeEditConfig {
  crossRegionPdsEndpoint?: string(name='cross_region_pds_endpoint'),
  disablePrint?: boolean(name='disable_print'),
  enabled?: boolean(name='enabled'),
  encodeUserId?: boolean(name='encode_user_id'),
  role?: string(name='role'),
}

/**
 * OfficePreviewConfig 文档预览配置
 */
model OfficePreviewConfig {
  disablePrint?: boolean(name='disable_print'),
  enabled?: boolean(name='enabled'),
}

/**
 * Parse keywords request
 */
model ParseKeywordsRequest {
  keywords?: string(name='keywords'),
}

/**
 * 
 */
model Permission {
  ActionList?: [ ActionItem ](name='ActionList', items='{"$ref":"#/definitions/ActionItem"}'),
  Collection?: string(name='Collection'),
  Condition?: Condition(name='Condition'),
  CreatedAt?: int64(name='CreatedAt', format='int64'),
  Deleted?: string(name='Deleted'),
  DomainID?: string(name='DomainID'),
  Effect?: string(name='Effect'),
  IdentityID?: string(name='IdentityID'),
  IdentityType?: string(name='IdentityType'),
  Resource?: string(name='Resource'),
  ResourceType?: string(name='ResourceType'),
  SequenceNumber?: int64(name='SequenceNumber', format='int64'),
  UpdatedAt?: int64(name='UpdatedAt', format='int64'),
  UpdatedBy?: string(name='UpdatedBy'),
  UserTags?: [ string ](name='UserTags', items='{"type":"string"}'),
}

/**
 * play_media request
 */
model PlayMediaRequest {
  AuthKey: string(name='AuthKey', description='auth_key', example='zzsdfwiskaksfeewasdf001', pattern='[a-z0-9]+'),
  DriveID: string(name='DriveID', description='drive_id', example='1', pattern='[0-9]+'),
  FileID: string(name='FileID', description='file_id', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
}

/**
 * Pre_create_check response
 */
model PreCreateCheckResponse {
  nameCheckResult?: NameCheckResult(name='name_check_result'),
  resultCode?: string(name='result_code', description='result_code', example='"file_size_exceeds_domain_quota"'),
}

/**
 * Pre hash check Response
 */
model PreHashCheckSuccessResponse {
  code?: string(name='code', description='code'),
  fileName?: string(name='file_name', description='file_name'),
  message?: string(name='message', description='message'),
  parentFileId: string(name='parent_file_id', description='parent_file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  preHash?: string(name='pre_hash', description='pre_hash'),
}

/**
 * 更新文件 user_tags 字段
 */
model PutFileUserTagsRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  userTags?: [ UserTag ](name='user_tags', description='user_tags', items='{"$ref":"#/definitions/UserTag"}'),
}

/**
 * 更新文件 user tags response
 */
model PutFileUserTagsResponse {
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', pattern='[a-z0-9]{1,50}'),
}

/**
 * query locationCluster request
 */
model QueryLocationDateClustersRequest {
  address?: Address(name='address'),
  clusterId?: string(name='cluster_id'),
  createTimeRange?: QueryRequestTimeRange(name='create_time_range'),
  customLabels?: string(name='custom_labels'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  endTimeRange?: QueryRequestTimeRange(name='end_time_range'),
  levels?: [ string ](name='levels', items='{"type":"string"}'),
  limit?: int32(name='limit', format='int32'),
  marker?: string(name='marker'),
  order?: string(name='order'),
  sort?: string(name='sort'),
  startTimeRange?: QueryRequestTimeRange(name='start_time_range'),
  title?: string(name='title'),
  updateTimeRange?: QueryRequestTimeRange(name='update_time_range'),
}

/**
 * 
 */
model QueryRequestTimeRange {
  end?: string(name='end', description='end'),
  start?: string(name='start', description='start'),
}

/**
 * query similar image clusters request
 */
model QuerySimilarImageClusterRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  imageThumbnailProcess?: string(name='image_thumbnail_process'),
  limit?: int64(name='limit', format='int64'),
  marker?: string(name='marker'),
  order?: string(name='order'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
}

/**
 * 快速转码task响应
 */
model QuickVideoTaskResponse {
  status?: string(name='status', description='status, 转码状态', example='finished'),
  templateHeight?: int64(name='template_height', description='template_height', example=720, format='int64'),
  templateId?: string(name='template_id', description='template_id, 转码模板id', example='264_720p'),
  templateName?: string(name='template_name', description='template_name, 模板文案id', example='pdsHD'),
  templateWidth?: int64(name='template_width', description='template_width', example=1280, format='int64'),
  url?: string(name='url', description='url, 视频播放地址', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 
 */
model RPVerifyTokenResponse {
  needRpVerify: boolean(name='need_rp_verify', description='是否需要实人认证，如果用户已通过认证，或者未开启实人认证，返回false', example=false),
  verifyToken: VerifyTokenResponse(name='verify_token'),
}

/**
 * 下载限速配置
 */
model RateLimit {
  partSize?: int64(name='part_size', format='int64'),
  partSpeed?: int64(name='part_speed', format='int64'),
}

/**
 * 
 */
model RecycleBinConfig {
  autoDeleteEnabled?: boolean(name='auto_delete_enabled'),
  autoDeleteKeepSecond?: int64(name='auto_delete_keep_second', format='int64'),
  deleteTrashNormalFileDisabled?: boolean(name='delete_trash_normal_file_disabled'),
}

/**
 * 刷新office文档在线编辑凭证
 */
model RefreshOfficeEditTokenRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  location?: string(name='location', description='location'),
  officeAccessToken: string(name='office_access_token', description='AccessToken', example='ac80b70a70fe4c34914a12743ac3a6fbv2'),
  officeRefreshToken: string(name='office_refresh_token', description='RefreshToken', example='ac80b70a70fe4c34914a12743ac3a6fbv2'),
  shareId?: string(name='share_id', description='share_id
example'),
}

/**
 * 刷新office文档在线编辑凭证 response
 */
model RefreshOfficeEditTokenResponse {
  officeAccessToken?: string(name='office_access_token', description='AccessToken', example='ac80b70a70fe4c34914a12743ac3a6fbv2'),
  officeRefreshToken?: string(name='office_refresh_token', description='RefreshToken', example='ac80b70a70fe4c34914a12743ac3a6fbv2'),
}

/**
 * 
 */
model RemoveStoreRequest {
  httpheaders?: map[string]string,
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  storeId: string(name='store_id', description='store ID', example='cdjaksbwuiqbxuiassd'),
}

/**
 * remove story files request
 */
model RemoveStoryFilesRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  files?: [ StoryFile ](name='files', items='{"$ref":"#/definitions/StoryFile"}'),
  storyId: string(name='story_id', description='story_id'),
}

/**
 * remove file from view
 */
model RemoveViewFileRequest {
  category: string(name='category', description='category', example='"album"'),
  driveId?: string(name='drive_id'),
  fileId?: string(name='file_id'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * 
 */
model RenameDetail {
  newName?: string(name='new_name', description='NewName'),
  oldName?: string(name='old_name', description='OldName'),
}

/**
 * report_event request
 */
model ReportEventRequest {
  eventType?: string(name='event_type', description='event_type', enum='share_link, share_link_access, media_play', example='share_link'),
  mediaPlay?: ReportMediaPlayEventRequest(name='media_play'),
  shareLink?: ReportShareLinkEventRequest(name='share_link'),
  shareLinkAccess?: ReportShareLinkAccessEventRequest(name='share_link_access'),
}

/**
 * report_event operation response
 */
model ReportEventResponse {
}

/**
 * report_media_play_event request
 */
model ReportMediaPlayEventRequest {
  duration?: int64(name='duration', description='duration', example=123, format='int64'),
  error?: string(name='error', description='error', example='timeout'),
  fileId?: string(name='file_id', description='file_id', example='abc123'),
  playerVersion?: string(name='player_version', description='player_version', example='1.2.3'),
  subType?: string(name='sub_type', description='sub_type', example='online_video_play'),
  templateId?: string(name='template_id', description='template_id', example='HD'),
  waitCount?: int64(name='wait_count', description='wait_count', example=3, format='int64'),
}

/**
 * report_share_link_access_event request
 */
model ReportShareLinkAccessEventRequest {
  shareId?: string(name='share_id', description='share_id', example='Agg1RL8pw96'),
  subType?: string(name='sub_type', description='sub_type', enum='access', example='access'),
}

/**
 * report_share_link_event request
 */
model ReportShareLinkEventRequest {
  shareId?: string(name='share_id', description='share_id', example='Agg1RL8pw96'),
  subType?: string(name='sub_type', description='sub_type', enum='preview, save, download, report, video_preview', example='preview'),
}

/**
 * 
 */
model RestoreDetail {
  srcParentFileId?: string(name='src_parent_file_id', description='SrcParentFileID'),
  tgtParentFileId?: string(name='tgt_parent_file_id', description='TgtParentFileID'),
}

/**
 * 恢复文件请求，支持批量
 */
model RestoreFileRequest {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
}

/**
 * 还原文件response
 */
model RestoreFileResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id'),
  domainId?: string(name='domain_id', description='domain_id'),
  driveId?: string(name='drive_id', description='drive_id'),
  fileId?: string(name='file_id', description='file_id'),
}

/**
 * 还原历史版本元数据
 */
model RestoreRevisionRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  revisionId: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
}

/**
 * 
 */
model RoleConfig {
  defaultGroupDriveRole?: string(name='default_group_drive_role'),
  disabledAdminFilePermission?: boolean(name='disabled_admin_file_permission'),
  enabled?: boolean(name='enabled'),
  enabledAdminDeletePersonalFilePermission?: boolean(name='enabled_admin_delete_personal_file_permission'),
  enabledAdminPersonalFilePermission?: boolean(name='enabled_admin_personal_file_permission'),
}

/**
 * 
 */
model RoleLogDetail {
  manageResourceId?: string(name='manage_resource_id', description='manage_resource_id', example='a123'),
  manageResourceName?: string(name='manage_resource_name', description='manage_resource_name', example='user_name_123'),
  manageResourceType?: string(name='manage_resource_type', description='manage_resource_type', example='user'),
  memberType?: string(name='member_type', description='member_type', enum='user,  group', example='user'),
  roleId?: string(name='role_id', description='role_id', example='SystemBaseSettingAdmin'),
  roleTagDescription?: string(name='role_tag_description', description='role_tag_description', example='role_tag_123_description'),
  roleTagName?: string(name='role_tag_name', description='role_tag_name', example='role_tag_123'),
  updateTo?: RoleLogSettingDetail(name='update_to'),
}

/**
 * 
 */
model RoleLogSettingDetail {
  roleTagDescription?: string(name='role_tag_description', description='role_tag_description', example='role_tag_123_description'),
  roleTagName?: string(name='role_tag_name', description='role_tag_name', example='role_tag_123'),
}

/**
 * 对应OSS Sha1的结构体，定义在 gitlab.alibaba-inc.com/oss/parallel_hash.go OSSSha1Digest
type OSSSha1Digest struct {
h   [5]uint32         // h是计算sha1时存放中间结果的变量，参与每一轮Sha1的计算，必不可少，最后的Sha1值也由这几个数字决定
x   [BlockSize]byte   // 上一轮计算非64字节对齐时，不足64节的内容会保存在这里
nx  int               // 上一轮计算数据长度取模64的结果，64字节对齐时这个值为0
len uint64            // 到上一个数据块为止的总长度，字节，用来计算 OSSRequestSha1Ctx 中的Nl, Nh
}

SHA1CTX 是 OSSSha1Digest 的简化
当每轮计算Sha1的数据长度为64位对齐时，nx固定为0，x长度为0，只需包含h和len；part_offset对应OSSSha1Digest的len
 */
model SHA1CTX {
  h?: [ integer ](name='h', items='{"format":"int64","type":"integer"}'),
  partOffset?: int64(name='part_offset', format='int64'),
}

/**
 * 全量获取file元信息的请求body
 */
model ScanFileMetaRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  category?: string(name='category', description='category', example='image'),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fields?: string(name='fields', description='fields', example='*'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int32(name='limit', description='limit', example=1000, format='int32', maximum=5000, minimum=1),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * scan file meta response
 */
model ScanFileMetaResponse {
  items?: [ BaseCCPFileResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseCCPFileResponse"}', maxItems=100),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
}

/**
 * 查询审计日志request
 */
model SearchAuditLogRequest {
  limit?: int32(name='limit', default=50, description='limit', example=10, format='int32', maximum=200, minimum=1),
  marker?: string(name='marker', description='Marker', example='NWmJDQ2NzhlMTRhMg'),
  orderBy?: string(name='order_by', description='order_by', enum='acted_at DESC', example='name'),
  query?: string(name='query', description='query', example='not actor_name=user1', maxLength=4096),
}

/**
 * 查询审计日志response
 */
model SearchAuditLogResponse {
  items?: [ BaseAuditLogResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseAuditLogResponse"}', maxItems=200),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWmJDQ2NzhlMTRhMg'),
}

/**
 * search domain request
 */
model SearchDomainsRequest {
  httpheaders?: map[string]string,
  instanceId?: string(name='instance_id', description='通过购买的实例ID搜索domain', example='pds_edm_public_cn-8mz26ff9t09'),
  limit?: int32(name='limit', description='分页大小', example=100, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='查询游标', example='abcd'),
  name?: string(name='name', description='domain名称，模糊匹配', example='xxx'),
  orderBy?: string(name='order_by', description='排序规则', example='created_at'),
  serviceCode?: string(name='service_code', description='通过不同ServiceCode搜索', example='edm'),
}

/**
 * Search drive request
 */
model SearchDriveRequest {
  driveName?: string(name='drive_name', description='Drive Fuzz Name'),
  limit?: int32(name='limit', default=100, description='每页大小限制', example=10, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='翻页标记, 接口返回的标记值', example='marker'),
  orderBy?: string(name='order_by'),
  orderDirection?: string(name='order_direction'),
  owner?: string(name='owner', description='所属者', example='abc'),
  ownerType?: string(name='owner_type', description='owner_type
所述者类型', example='user/group'),
  subdomainId?: string(name='subdomain_id', description='Subdomain ID', example='hz-123'),
}

/**
 * search drive response
 */
model SearchDriveResponse {
  items?: [ BaseDriveResponse ](name='items', description='Drive 列表', items='{"$ref":"#/definitions/BaseDriveResponse"}'),
  nextMarker?: string(name='next_marker', description='翻页标记', example='marker'),
}

/**
 * search file request
 */
model SearchFileFpRefsRequest {
  driveId: string(name='drive_id', description='drive_id'),
  fileId: string(name='file_id', description='file_id'),
  fileRevisionId: string(name='file_revision_id', description='file_revision_id'),
  marker?: string(name='marker', description='marker'),
}

/**
 * search file response
 */
model SearchFileFpRefsResponse {
  items?: [ FpRef ](name='items', items='{"$ref":"#/definitions/FpRef"}'),
  nextMarker?: string(name='next_marker'),
}

/**
 * 搜索文件元数据
 */
model SearchFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"string"}', description='addition_data'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  driveIdList?: [ string ](name='drive_id_list', description='drive_ids', example='1, 2', items='{"type":"string"}'),
  imageCroppingAspectRatios?: [ string ](name='image_cropping_aspect_ratios', example='1:1, 1:2, 2:1, 2:3, 3:2, 7:4', items='{"type":"string"}'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int32(name='limit', default=50, description='limit', example=10, format='int32', maximum=100, minimum=1),
  location?: string(name='location', description='location', example='cn-hangzhou'),
  marker?: string(name='marker', description='Marker', example='""'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  orderBy?: string(name='order_by', default='updated_at', description='order_by', enum='name, created_at, updated_at, size', example='size'),
  query?: string(name='query', description='query', example='not name=123', maxLength=4096),
  recursive?: boolean(name='recursive'),
  referer?: string(name='referer', description='referer'),
  returnTotalCount?: boolean(name='return_total_count', description='return_total_count 是否返回查询总数'),
  signToken?: string(name='sign_token', description='sign_token'),
  systemFolders?: [ string ](name='system_folders', default='root', description='system_folders', example='root, sbox, recyclebin', items='{"type":"string"}'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  urlExpireSec?: int64(name='url_expire_sec', default=900, description='url_expire_sec', example=900, format='int64', maximum=14400, minimum=10),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * search file response
 */
model SearchFileResponse {
  items?: [ BaseCCPFileResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseCCPFileResponse"}', maxItems=100),
  nextMarker?: string(name='next_marker', description='next_marker', example='NWQ1YmI4MjA0ZGU1ZWNjYzAzODM0ZDVkODlkMWJiMzcyNzM1NTU4OA'),
  totalCount?: int64(name='total_count', description='total_count', format='int64'),
}

/**
 * Search image address groups request
 */
model SearchImageAddressGroupsRequest {
  addressLevel?: string(name='address_level', default='city', description='查询的地点级别', example='city'),
  addressNames?: [ string ](name='address_names', description='查询的地点数组', example='杭州市, 北京市', items='{"type":"string"}'),
  brGeoPoint?: string(name='br_geo_point', description='br_geo_point', example='39.121,101.2121'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  tlGeoPoint?: string(name='tl_geo_point', description='tl_geo_point', example='39.121,101.2121'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
}

/**
 * search_share_link request
 */
model SearchShareLinkRequest {
  categories?: [ string ](name='categories', description='categories', example='collect', items='{"type":"string"}'),
  creators?: [ string ](name='creators', description='creators', example='a, b', items='{"type":"string"}'),
  limit?: int32(name='limit', description='limit', example=50, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  orderBy?: string(name='order_by', description='order_by', enum='share_name, description, created_at, updated_at', example='share_name'),
  orderDirection?: string(name='order_direction', description='order_direction', enum='ASC, DESC', example='ASC'),
  query?: string(name='query', description='query', example='creator=abc', maxLength=4096),
  returnTotalCount?: boolean(name='return_total_count', description='return_total_count 是否返回查询总数', example=true),
}

/**
 * search_share_link response
 */
model SearchShareLinkResponse {
  items?: [ BaseShareLinkResponse ](name='items', description='items', example='', items='{"$ref":"#/definitions/BaseShareLinkResponse"}'),
  nextMarker?: string(name='next_marker', description='next_marker'),
  totalCount?: int64(name='total_count', description='total_count', example=99, format='int64'),
}

/**
 * search view file
 */
model SearchViewFilesRequest {
  category: string(name='category', description='category', example='"album"'),
  fields?: string(name='fields'),
  filter?: string(name='filter'),
  imageThumbnailProcess?: string(name='image_thumbnail_process', description='image_thumbnail_process', example='image/resize,w_200'),
  imageUrlProcess?: string(name='image_url_process', description='image_url_process', example='image/resize,w_200'),
  limit?: int32(name='limit', format='int32'),
  marker?: string(name='marker'),
  officeThumbnailProcess?: string(name='office_thumbnail_process', description='office_thumbnail_process', example='image/resize,w_200'),
  orderBy?: string(name='order_by'),
  orderDirection?: string(name='order_direction'),
  query?: string(name='query', description='query', example='not name=123', maxLength=4096),
  returnTotalCount?: boolean(name='return_total_count', description='return_total_count 是否返回查询总数'),
  thumbnailProcesses?: object(name='thumbnail_processes', additionalProperties='{"$ref":"#/definitions/BaseImageProcessRequest"}'),
  urlExpireSec?: int32(name='url_expire_sec', format='int32'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  videoThumbnailProcess?: string(name='video_thumbnail_process', description='video_thumbnail_process
type:string', example='video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * Search view request
 */
model SearchViewsRequest {
  category: string(name='category', description='category', example='"album"'),
  limit?: int32(name='limit', default=50, description='每页大小限制', example=10, format='int32', maximum=100, minimum=1),
  marker?: string(name='marker', description='marker', example='NWQ1Yjk4YmI1ZDRlYmU1Y2E0YWE0NmJhYWJmODBhNDQ2NzhlMTRhMg'),
  name?: string(name='name', description='name', example='"name"'),
  orderBy?: string(name='order_by', description='order_by', example='"created_at"'),
  orderDirection?: string(name='order_direction', description='order_direction', enum='ASC, DESC', example='DESC'),
  owner?: string(name='owner', description='owner', example='"123"'),
  returnTotalCount?: boolean(name='return_total_count', description='return_total_count 是否返回查询总数'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
}

/**
 * 
 */
model SecurityLogDetail {
  shareConfig?: ShareConfigLogDetail(name='share_config'),
  shareLinkConfig?: ShareLinkConfigLogDetail(name='share_link_config'),
  watermarkConfig?: WatermarkEnableConfig(name='watermark_config'),
}

/**
 * 
 */
model SendSmsCodeResponse {
  smsCodeId: string(name='sms_code_id', description='验证码ID', example='csjanwia'),
}

/**
 * 
 */
model SetAppPublicKeyRequest {
  httpheaders?: map[string]string,
  appId: string(name='app_id', description='App ID', example='CNMrhxwPJHAReExa'),
  publicKey: string(name='public_key', description='RSA加密算法的公钥, PEM格式', example='-----BEGIN RSA PUBLIC KEY-----****-----END RSA PUBLIC KEY-----'),
}

/**
 * 
 */
model SetBizCNameCertRequest {
  httpheaders?: map[string]string,
  CertID?: string(name='CertID'),
  bizCname?: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  certBody: string(name='cert_body', description='cert body', example='xxxxxxxxxxx'),
  certName: string(name='cert_name', description='cert name', example='mysite2020cert'),
  certPrivatekey: string(name='cert_privatekey', description='cert privatekey', example='yyyyyyyyyy'),
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='biz cname', example=true),
}

/**
 * 
 */
model SetBizCNameCertResponse {
  bizCname?: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  certName?: string(name='cert_name', description='cert name', example='xdrv2020cert'),
  cnameType?: string(name='cname_type', description='cname type', example='api'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='is vpc', example=false),
}

/**
 * 
 */
model SetBizCNameRequest {
  httpheaders?: map[string]string,
  bizCname: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='biz cname', example=true),
}

/**
 * 
 */
model SetBizCNameResponse {
  bizCname?: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  cnameStatus?: CNameStatus(name='cname_status'),
  cnameType?: string(name='cname_type', description='cname type', example='api'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='is vpc', example=false),
}

/**
 * list cors rule request
 */
model SetCorsRuleListRequest {
  httpheaders?: map[string]string,
  corsRuleList: [ CorsRule ](name='cors_rule_list', description='cors rule list', items='{"$ref":"#/definitions/CorsRule"}'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
}

/**
 * 
 */
model SetDataCNameRequest {
  httpheaders?: map[string]string,
  dataCname: string(name='data_cname', description='cn-shanghai data cname', example='cn-beijing-data.yoursite.com'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  location: string(name='location', description='location', example='cn-beijing'),
}

/**
 * 
 */
model SetDataCNameResponse {
  dataCname: string(name='data_cname', description='datacname', example='pdsdata-cn-hangzhou.yoursite.com'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  location: string(name='location', description='data location', example='cn-hangzhou'),
}

/**
 * 
 */
model SetShareLinkStatusRequest {
  httpheaders?: map[string]string,
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  enabled: boolean(name='enabled', description='enabled', example=false),
}

/**
 * 
 */
model SetShareStatusRequest {
  httpheaders?: map[string]string,
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  enabled: boolean(name='enabled', description='enabled', example=false),
}

/**
 * 
 */
model ShareConfigLogDetail {
  enable?: boolean(name='enable', description='enable'),
}

/**
 * share detail response
 */
model ShareDetailResponse {
  accessQuota?: int64(name='access_quota', description='企业未配置独立域名时，允许的访问次数', example=500, format='int64'),
  exceedAccessQuota?: boolean(name='exceed_access_quota', description='企业未配置独立域名时，是否超过允许的访问次数', example=false),
}

/**
 * 
 */
model ShareFile {
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
}

/**
 * 
 */
model ShareLinkConfigLogDetail {
  enable?: boolean(name='enable', description='enable'),
}

/**
 * 
 */
model ShareLinkCountResponse {
  accessCount?: int64(name='access_count', description='access_count', example=1, format='int64'),
  downloadCount?: int64(name='download_count', description='下载次数', example=1, format='int64'),
  previewCount?: int64(name='preview_count', description='preview_count', example=1, format='int64'),
  reportCount?: int64(name='report_count', description='举报次数', example=1, format='int64'),
  saveCount?: int64(name='save_count', description='转存次数', example=1, format='int64'),
  videoPreviewCount?: int64(name='video_preview_count', description='音视频播放次数', example=1, format='int64'),
}

/**
 * share_link detail response
 */
model ShareLinkDetailResponse {
  accessQuota?: int64(name='access_quota', description='企业未配置独立域名时，允许的访问次数', example=500, format='int64'),
  enableNvcShareToken?: boolean(name='enable_nvc_share_token', description='是否启用分享token验证码功能', example=true),
  enableOfficeEditable?: boolean(name='enable_office_editable', description='企业是否开通了分享可在线编辑的文档的功能', example=true),
  exceedAccessQuota?: boolean(name='exceed_access_quota', description='企业未配置独立域名时，是否超过允许的访问次数', example=false),
}

/**
 * 
 */
model ShareLinkLogDetail {
  creatable?: boolean(name='creatable', description='creatable', example=true),
  enablePreview?: boolean(name='enable_preview', description='enable_preview', example=true),
  enableSaveDownload?: boolean(name='enable_save_download', description='enable_save_download', example=true),
  enableVisible?: boolean(name='enable_visible', description='enable_visible', example=true),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z'),
  hasMultiObject?: boolean(name='has_multi_object', description='has_multi_object', example=true),
  hasPwd?: boolean(name='has_pwd', description='has_pwd', example=false),
  officeEditable?: boolean(name='office_editable', description='office_editable', example=true),
  previewLimit?: int64(name='preview_limit', description='preview_limit', example=10, format='int64'),
  requireLogin?: boolean(name='require_login', description='require_login', example=true),
  saveDownloadLimit?: int64(name='save_download_limit', description='save_download_limit', example=10, format='int64'),
  shareCreatedAt?: string(name='share_created_at', description='share_created_at', example='2006-01-02T15:04:05.999Z'),
  shareCreatorId?: string(name='share_creator_id', description='share_creator_id', example='"123456"'),
  shareCreatorName?: string(name='share_creator_name', description='share_creator_name', example='"user1"'),
  shareId?: string(name='share_id', description='share_id (脱敏)', enum='file, folder', example='file'),
  toParentPath?: string(name='to_parent_path', description='to_parent_path', example='/e/f/g'),
  toParentPathType?: string(name='to_parent_path_type', description='to_parent_path_type', example='self'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
}

/**
 * 
 */
model ShareLinkPermissionResponse {
  creatable?: boolean(name='creatable', description='允许上传', example=true),
  creatableFileIdList?: [ string ](name='creatable_file_id_list', description='允许上传的目录列表', example='xxx', items='{"type":"string"}'),
  disableDownload?: boolean(name='disable_download', description='禁止下载分享中的文件', example=true),
  disablePreview?: boolean(name='disable_preview', description='禁止预览分享中的文件', example=true),
  disableSave?: boolean(name='disable_save', description='禁止转存分享中的文件', example=true),
  disableVisible?: boolean(name='disable_visible', description='分享中的文件不可见', example=true),
  downloadLimit?: int64(name='download_limit', description='分享下载次数限制', example=10, format='int64'),
  officeEditable?: boolean(name='office_editable', description='允许在线编辑文档', example=true),
  previewLimit?: int64(name='preview_limit', description='分享预览次数限制', example=10, format='int64'),
  requireLogin?: boolean(name='require_login', description='企业内(domain)登录后才允许使用分享', example=true),
  saveDownloadLimit?: int64(name='save_download_limit', description='分享转存和下载的总次数限制', example=10, format='int64'),
  saveLimit?: int64(name='save_limit', description='分享转存次数限制', example=10, format='int64'),
}

/**
 * 
 */
model ShareLogDetail {
  disinheritSubGroup?: boolean(name='disinherit_sub_group', description='disinherit_sub_group', example=false),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z'),
  parentPath?: string(name='parent_path', description='parent_path', example='/a/b/c'),
  permissions?: [ string ](name='permissions', description='permissions', example='', items='{"type":"string"}'),
  roleId?: string(name='role_id', description='role_id', example='SystemFileViewer'),
  roleName?: string(name='role_name', description='role_name', example='xxx'),
  shareToId?: string(name='share_to_id', description='share_to_id', example='123'),
  shareToName?: string(name='share_to_name', description='share_to_name', example='user1'),
  shareToType?: string(name='share_to_type', description='share_to_type', enum='user,  group', example='user'),
  type?: string(name='type', description='type', enum='file, folder, drive', example='file'),
  updateTo?: ShareLogSettingDetail(name='update_to'),
}

/**
 * 
 */
model ShareLogSettingDetail {
  disinheritSubGroup?: boolean(name='disinherit_sub_group', description='disinherit_sub_group', example=false),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z'),
  permissions?: [ string ](name='permissions', description='permissions', example='', items='{"type":"string"}'),
  roleId?: string(name='role_id', description='role_id', example='SystemFileViewer'),
  roleName?: string(name='role_name', description='role_name', example='xxx'),
}

/**
 * 
 */
model SharePermissionPolicy {
  fileId?: string(name='file_id'),
  filePath?: string(name='file_path'),
  permissionInheritable?: boolean(name='permission_inheritable'),
  permissionList?: [ string ](name='permission_list', items='{"type":"string"}'),
  permissionType?: string(name='permission_type'),
}

/**
 * 
 */
model SignatureInfo {
  bucket?: string(name='bucket'),
  canonicalizedResource?: string(name='canonicalized_resource'),
  endpoint?: string(name='endpoint'),
  headers?: object(name='headers', additionalProperties='{"type":"string"}'),
  objectKey?: string(name='object_key'),
  signature?: string(name='signature'),
  strToSign?: string(name='str_to_sign'),
}

/**
 * 
 */
model SimpleQuery {
  field?: string(name='field'),
  operation?: string(name='operation'),
  subQueries?: [ SimpleQuery ](name='sub_queries', items='{"$ref":"#/definitions/SimpleQuery"}'),
  value?: string(name='value'),
}

/**
 * simple query request
 */
model SimpleQueryRequest {
  aggregations?: [ Aggregation ](name='aggregations', items='{"$ref":"#/definitions/Aggregation"}'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  limit?: int32(name='limit', format='int32'),
  marker?: string(name='marker'),
  order?: string(name='order'),
  query?: SimpleQuery(name='query'),
  sort?: string(name='sort'),
}

/**
 * 
 */
model SimpleStreamInfo {
  contentHash?: string(name='content_hash', description='Content Hash'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  size?: int64(name='size', description='size', format='int64'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 
 */
model Store {
  accelerateEndpoint?: string(name='accelerate_endpoint', description='全球加速地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  basePath?: string(name='base_path', description='存储公共前缀', example='pds-data'),
  bucket: string(name='bucket', description='bucket名称', example='data-sz-bucket'),
  cdnEndpoint?: string(name='cdn_endpoint', description='内容分发地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  cdnRatelimitDisable?: boolean(name='cdn_ratelimit_disable', description='命中限速用户时是否关闭CDN地址返回', example=false),
  cdnTimelimit?: string(name='cdn_timelimit', description='CDN时间控制', example='0-8 or 23-5'),
  cdnUrlAuthKey?: string(name='cdn_url_auth_key', description='CDN鉴权key'),
  customizedAccelerateEndpoint?: string(name='customized_accelerate_endpoint', description='自定义全球加速地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  customizedCdnEndpoint?: string(name='customized_cdn_endpoint', description='自定义内容分发地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  customizedEndpoint?: string(name='customized_endpoint', description='自定义Public访问地址', example='https://{regionid}-data.mydomain.com/'),
  customizedInternalEndpoint?: string(name='customized_internal_endpoint', description='自定义vpc访问地址', example='https://{regionid}-data-vpc.mydomain.com/'),
  endpoint: string(name='endpoint', description='Public访问地址', example='https://{domainid}.{regionid}.data.aliyunpds.com/'),
  enetEndpoint?: string(name='enet_endpoint', description='冷流地址', example='https://oss-cn-shenzhen-enet.aliyuncs.com/'),
  enetPercentConfig?: WhitePercentConfig(name='enet_percent_config'),
  internalEndpoint?: string(name='internal_endpoint', description='vpc访问地址', example='https://{domainid}.{regionid}.data-vpc.aliyunpds.com/'),
  location?: string(name='location', description='地点', example='cn-hangzhou'),
  ownership: string(name='ownership', description='存储归属，system表示系统提供，custom表示使用自己的存储', enum='system, custom', example='system'),
  policy: string(name='policy', description='Policy授权,system类型store会将bucket权限授予当前云账号'),
  roleArn?: string(name='role_arn', description='访问Bucket的角色ARN', example='acs:oss:*:*:*'),
  storeId: string(name='store_id', description='store ID', example='101'),
  type: string(name='type', description='存储类型，当前只支持oss', enum='oss', example='oss'),
}

/**
 * 
 */
model StoreFile {
  domainId?: string(name='domain_id'),
  name?: string(name='name'),
  parentFilePath?: string(name='parent_file_path'),
  storeId?: string(name='store_id'),
  type?: string(name='type'),
}

/**
 * 
 */
model StoreItemResponse {
  accelerateEndpoint?: string(name='accelerate_endpoint', description='全球加速地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  basePath?: string(name='base_path', description='存储公共前缀', example='pds-data'),
  bucket: string(name='bucket', description='bucket名称', example='data-sz-bucket'),
  cdnEndpoint?: string(name='cdn_endpoint', description='内容分发地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  cdnRatelimitDisable?: boolean(name='cdn_ratelimit_disable', description='命中限速用户时是否关闭CDN地址返回', example=false),
  cdnTimelimit?: string(name='cdn_timelimit', description='CDN时间控制', example='0-8 or 23-5'),
  cdnUrlAuthKey?: string(name='cdn_url_auth_key', description='CDN鉴权key'),
  customizedAccelerateEndpoint?: string(name='customized_accelerate_endpoint', description='自定义全球加速地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  customizedCdnEndpoint?: string(name='customized_cdn_endpoint', description='自定义内容分发地址', example='https://oss-cn-shenzhen.aliyuncs.com/'),
  customizedEndpoint?: string(name='customized_endpoint', description='自定义Public访问地址', example='https://{regionid}-data.mydomain.com/'),
  customizedInternalEndpoint?: string(name='customized_internal_endpoint', description='自定义vpc访问地址', example='https://{regionid}-data-vpc.mydomain.com/'),
  domainId?: string(name='domain_id'),
  endpoint: string(name='endpoint', description='Public访问地址', example='https://{domainid}.{regionid}.data.aliyunpds.com/'),
  enetEndpoint?: string(name='enet_endpoint', description='冷流地址', example='https://oss-cn-shenzhen-enet.aliyuncs.com/'),
  enetPercentConfig?: WhitePercentConfig(name='enet_percent_config'),
  internalEndpoint?: string(name='internal_endpoint', description='vpc访问地址', example='https://{domainid}.{regionid}.data-vpc.aliyunpds.com/'),
  location?: string(name='location', description='地点', example='cn-hangzhou'),
  ownership: string(name='ownership', description='存储归属，system表示系统提供，custom表示使用自己的存储', enum='system, custom', example='system'),
  policy: string(name='policy', description='Policy授权,system类型store会将bucket权限授予当前云账号'),
  roleArn?: string(name='role_arn', description='访问Bucket的角色ARN', example='acs:oss:*:*:*'),
  storeId: string(name='store_id', description='store ID', example='101'),
  type: string(name='type', description='存储类型，当前只支持oss', enum='oss', example='oss'),
}

/**
 * 
 */
model StoryFile {
  driveId?: string(name='drive_id'),
  fileId?: string(name='file_id'),
  revisionId?: string(name='revision_id'),
}

/**
 * 
 */
model StreamUploadInfo {
  location?: string(name='location', description='location'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', example='[', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  preRapidUpload?: boolean(name='pre_rapid_upload', description='pre_rapid_upload
type: boolean', example=false),
  rapidUpload?: boolean(name='rapid_upload', description='rapid_upload
type: boolean', example=false),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
}

/**
 * 
 */
model StringCondition {
  vpcId?: [ string ](name='vpc_id', items='{"type":"string"}'),
}

/**
 * 
 */
model SubdomainConfig {
  enableRootDomainCreateResource?: boolean(name='enable_root_domain_create_resource'),
  enabled?: boolean(name='enabled'),
  independentStoreCountQuota?: int64(name='independent_store_count_quota', format='int64'),
  subdomainCountQuota?: int64(name='subdomain_count_quota', format='int64'),
  version?: string(name='version'),
}

/**
 * 
 */
model SubdomainDeleteBizCNameAndCertRequest {
  bizCname?: string(name='biz_cname', description='api cname', example='api.yoursite.com'),
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='vpc', example=true),
  subdomainId: string(name='subdomain_id', description='subdomain ID', example='sz100'),
}

/**
 * 
 */
model SubdomainDeleteBizCNameCertRequest {
  bizCname?: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  certId?: string(name='cert_id', description='cert id', example='aa-bb-cc-dd'),
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='is vpc', example=false),
  subdomainId: string(name='subdomain_id', description='subdomain ID', example='sz100'),
}

/**
 * 
 */
model SubdomainGetBizCNameInfoRequest {
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='is vpc', example=false),
  subdomainId: string(name='subdomain_id', description='subdomain ID', example='sz100'),
}

/**
 * 
 */
model SubdomainSetBizCNameCertRequest {
  CertID?: string(name='CertID'),
  bizCname?: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  certBody: string(name='cert_body', description='cert body', example='xxxxxxxxxxx'),
  certName: string(name='cert_name', description='cert name', example='mysite2020cert'),
  certPrivatekey: string(name='cert_privatekey', description='cert privatekey', example='yyyyyyyyyy'),
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='biz cname', example=true),
  subdomainId: string(name='subdomain_id', description='subdomain ID', example='sz100'),
}

/**
 * 
 */
model SubdomainSetBizCNameRequest {
  bizCname: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  cnameType: string(name='cname_type', description='cname type', example='auth'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='biz cname', example=true),
  subdomainId: string(name='subdomain_id', description='domain ID', example='sz100'),
}

/**
 * 
 */
model SubdomainSetBizCNameResponse {
  bizCname?: string(name='biz_cname', description='biz cname', example='api.yoursite.com'),
  cnameStatus?: CNameStatus(name='cname_status'),
  cnameType?: string(name='cname_type', description='cname type', example='api'),
  domainId: string(name='domain_id', description='domain ID', example='sz100'),
  isVpc?: boolean(name='is_vpc', description='is vpc', example=false),
  subdomainId: string(name='subdomain_id', description='subdomain ID', example='sz100'),
}

/**
 * 
 */
model SystemTag {
  centricScore?: float(name='centric_score', format='float'),
  confidence?: double(name='confidence', format='double'),
  enName?: string(name='en_name'),
  name?: string(name='name'),
  parentEnName?: string(name='parent_en_name'),
  parentName?: string(name='parent_name'),
  source?: string(name='source'),
  tagLevel?: int64(name='tag_level', format='int64'),
}

/**
 * 
 */
model Target {
  fileId?: string(name='file_id', description='FileID', example='""'),
  fileName?: string(name='file_name', description='FileName', example='""'),
  fileType?: string(name='file_type', description='FileType', example='""'),
}

/**
 * 
 */
model TimeRange {
  endTime?: string(name='end_time', description='EndTime', example='""'),
  startTime?: string(name='start_time', description='StartTime', example='""'),
}

/**
 * 
 */
model TrashDetail {
  srcParentFileId?: string(name='src_parent_file_id', description='SrcParentFileID'),
  tgtParentFileId?: string(name='tgt_parent_file_id', description='TgtParentFileID'),
}

/**
 * 删除文件请求，支持批量
 */
model TrashFileRequest {
  checkFolderEmpty?: boolean(name='check_folder_empty'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  shareId?: string(name='share_id', description='share_id, either share_id or drive_id is required', example='0018d25b-faed-4f5c-a67b-414e160b7953'),
}

/**
 * 删除文件到回收站response
 */
model TrashFileResponse {
  asyncTaskId?: string(name='async_task_id', description='async_task_id'),
  domainId?: string(name='domain_id', description='domain_id'),
  driveId?: string(name='drive_id', description='drive_id'),
  fileId?: string(name='file_id', description='file_id'),
}

/**
 * UCCompleteFileRequest complete with store exist
 */
model UCCompleteFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  lastRevisionId?: string(name='last_revision_id'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  shareId?: string(name='share_id'),
  uploadId?: string(name='upload_id', description='upload_id'),
}

/**
 * UCCompleteFileResponse
 */
model UCCompleteFileResponse {
  actionList?: [ string ](name='action_list', description='action_list', items='{"type":"string"}'),
  autoDeleteLeftSec?: int64(name='auto_delete_left_sec', description='auto_delete_left_sec', example=10000, format='int64'),
  bucketName?: string(name='bucket_name', description='bucket_name'),
  category?: string(name='category', description='category', enum='doc, image, audio, video', example='doc'),
  characteristicHash?: string(name='characteristic_hash', description='CharacteristicHash'),
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  creatorId?: string(name='creator_id', description='creator_id', example='123abc'),
  creatorName?: string(name='creator_name', description='creator_name', example='test_user'),
  creatorType?: string(name='creator_type', description='creator_type', example='User, AliUser'),
  customField1?: string(name='custom_field_1', description='custom_field_1'),
  customField2?: string(name='custom_field_2', description='custom_field_2'),
  customType?: string(name='custom_type', description='custom_type'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode', example='pin'),
  endpoint?: string(name='endpoint', description='endpoint'),
  exFieldsInfo?: object(name='ex_fields_info', additionalProperties='{"type":"object"}', description='ex_fields_info'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  filePathType?: string(name='file_path_type', description='TODO 先不在API上透出该字段，file_path_type目前在edm中返回；path type是否在PDS通用逻辑中展示，展示的含义是什么，需要再做分析'),
  hidden?: boolean(name='hidden', description='Hidden
type: boolean', enum='false, true', example=false),
  imageMediaMetadata?: ImageMediaResponse(name='image_media_metadata'),
  investigationStatus?: int64(name='investigation_status', description='InvestigationStatus', format='int64'),
  labels?: [ string ](name='labels', description='labels', example='label1:1, label2:2', items='{"type":"string"}'),
  lastModifierId?: string(name='last_modifier_id', description='last_modifier_id', example='123abc'),
  lastModifierName?: string(name='last_modifier_name', description='last_modifier_name', example='test_user'),
  lastModifierType?: string(name='last_modifier_type', description='last_modifier_type', example='User, AliUser'),
  localCreatedAt?: string(name='local_created_at', description='local_created_at', example='2019-08-20T06:51:27.292Z'),
  localModifiedAt?: string(name='local_modified_at'),
  meta?: string(name='meta'),
  mimeExtension?: string(name='mime_extension', description='mime_extension', example='mov'),
  mimeType?: string(name='mime_type', description='mime_type', example='video/quicktime'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  objectKey?: string(name='object_key', description='object_key'),
  parentFileId?: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  punishFlag?: int64(name='punish_flag', description='PunishFlag', format='int64'),
  punishReason?: string(name='punish_reason', description='PunishReason'),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  revisionVersion?: int64(name='revision_version', description='revision_version', example=1024, format='int64'),
  shareId?: string(name='share_id'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  starred?: boolean(name='starred', description='starred
type: boolean', example=false),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='@Deprecated streams url info'),
  syncDeviceFlag?: boolean(name='sync_device_flag', description='sync_device_flag'),
  syncFlag?: boolean(name='sync_flag', description='sync_flag'),
  syncMeta?: string(name='sync_meta', description='sync_meta'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  thumbnailUrls?: object(name='thumbnail_urls', additionalProperties='{"type":"string"}', description='thumbnail_urls'),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
  userTags?: object(name='user_tags', additionalProperties='{"type":"string"}', description='user_tags'),
  videoMediaMetadata?: VideoMediaResponse(name='video_media_metadata'),
  videoPreviewMetadata?: VideoPreviewResponse(name='video_preview_metadata'),
}

/**
 * UCCreateFileRequest create file with signature
 */
model UCCreateFileRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  autoRename?: boolean(name='auto_rename'),
  callback?: CcpCallback(name='callback'),
  category?: string(name='category', description='category'),
  checkNameMode?: string(name='check_name_mode', default='ignore', description='check_name_mode', enum='ignore, auto_rename, refuse'),
  checkParentFileIdPath?: string(name='check_parent_file_id_path'),
  contentHash?: string(name='content_hash', description='content_hash', example='7C4A8D09CA3762AF61E59520943DC26494F8941B'),
  contentHashMutable?: boolean(name='content_hash_mutable', description='content_hash_mutable'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentMd5?: string(name='content_md5', description='ContentMd5', example='E10ADC3949BA59ABBE56E057F20F883E'),
  contentType?: string(name='content_type', description='ContentType', example='application/json'),
  createReason?: string(name='create_reason'),
  customField1?: string(name='custom_field_1'),
  customField2?: string(name='custom_field_2'),
  customType?: string(name='custom_type'),
  date?: string(name='date', description='date'),
  description?: string(name='description', description='description', example='file description', maxLength=1024, minLength=0),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode'),
  fileId?: string(name='file_id', description='file_id'),
  forceUploadToLocation?: boolean(name='force_upload_to_location', description='force_upload_to_location'),
  headers?: object(name='headers', additionalProperties='{"type":"string"}', description='headers'),
  hidden?: boolean(name='hidden', description='hidden', enum='true, false', example=false),
  imageMediaMetadata?: ImageMediaMetadata(name='image_media_metadata'),
  labels?: [ string ](name='labels', description='labels', example='label1, label2', items='{"type":"string"}'),
  lastRevisionId?: string(name='last_revision_id'),
  lastUpdatedAt?: string(name='last_updated_at', description='last_updated_at', example='2019-08-20T06:51:27.292Z'),
  localCreatedAt?: string(name='local_created_at', description='local_created_at', example='2019-08-20T06:51:27.292Z'),
  localModifiedAt?: string(name='local_modified_at'),
  location?: string(name='location', description='location'),
  meta?: string(name='meta'),
  name: string(name='name', description='Name', example='ccp.jpg', maxLength=1024, minLength=1),
  needMergePeriodRevision?: boolean(name='need_merge_period_revision'),
  overwrite?: boolean(name='overwrite', description='overwrite'),
  parallelUpload?: boolean(name='parallel_upload'),
  parameters?: object(name='parameters', additionalProperties='{"type":"object"}', description='parameters'),
  parentFileId: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=4, pattern='[a-z0-9]{1,50}'),
  parentFileIdPath?: string(name='parent_file_id_path'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  preHash?: string(name='pre_hash', description='pre_hash', example='E10ADC3949BA59ABBE56E057F20F883E'),
  proofCode?: string(name='proof_code', description='proof_code'),
  proofSeed?: string(name='proof_seed', description='proof_seed'),
  proofVersion?: string(name='proof_version', description='proof_version', enum='v1'),
  shareId?: string(name='share_id', description='share_id
example'),
  size?: int64(name='size', description='Size', format='int64', minimum=0),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/FileStreamInfo"}', description='streams_info'),
  type: string(name='type', description='Type', enum='file, folder', example='file'),
  uploadType?: string(name='upload_type', description='upload_type'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
  userTags?: [ UserTag ](name='user_tags', description='user_tags', items='{"$ref":"#/definitions/UserTag"}'),
  videoMediaMetadata?: VideoMediaMetadata(name='video_media_metadata'),
}

/**
 * UCCreateFileResponse
 */
model UCCreateFileResponse {
  callback?: Callback(name='callback'),
  domainId?: string(name='domain_id', description='domain_id', example='domain', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode', example='pin'),
  exist?: boolean(name='exist', description='exist
type: boolean', example=false),
  fileId?: string(name='file_id', description='file_id', example='5d79206586bb5dd69fb34c349282718146c55da7', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  fileName?: string(name='file_name', description='file_name', example='test.txt', maxLength=255, minLength=1),
  location?: string(name='location', description='location'),
  parentFileId?: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  partInfoList?: [ UploadPartInfo ](name='part_info_list', description='part_info_list', example='[', items='{"$ref":"#/definitions/UploadPartInfo"}'),
  rapidUpload?: boolean(name='rapid_upload', description='rapid_upload
type: boolean', example=false),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  shareId?: string(name='share_id', description='share_id', example='xyz'),
  signature?: SignatureInfo(name='signature'),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  streamsUploadInfo?: object(name='streams_upload_info', additionalProperties='{"$ref":"#/definitions/StreamUploadInfo"}', description='streams_upload_info'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  uploadType?: string(name='upload_type', description='upload_type', enum='form, multipart', example='form'),
}

/**
 * UCFileGetSignatureRequest get file upload signature
 */
model UCFileGetSignatureRequest {
  action?: string(name='action', description='action'),
  bucket?: string(name='bucket', description='bucket'),
  contentMd5?: string(name='content_md5', description='content_md5'),
  contentType?: string(name='content_type', description='content_type'),
  date?: string(name='date', description='date'),
  driveId?: string(name='drive_id', description='drive_id'),
  headers?: object(name='headers', additionalProperties='{"type":"string"}', description='headers'),
  objectKey?: string(name='object_key', description='object_key'),
  parameters?: object(name='parameters', additionalProperties='{"type":"object"}', description='parameters'),
  uploadId?: string(name='upload_id', description='upload_id'),
}

/**
 * UCGetObjectInfoByObjectKeyRequest
 */
model UCGetObjectInfoByObjectKeyRequest {
  objectKey?: string(name='object_key'),
}

/**
 * UCGetObjectInfoBySha1Request
 */
model UCGetObjectInfoBySha1Request {
  sha1?: string(name='sha1'),
}

/**
 * UCGetSignatureResponse
 */
model UCGetSignatureResponse {
  bucket?: string(name='bucket'),
  canonicalizedResource?: string(name='canonicalized_resource'),
  endpoint?: string(name='endpoint'),
  headers?: object(name='headers', additionalProperties='{"type":"string"}'),
  objectKey?: string(name='object_key'),
  signature?: string(name='signature'),
  strToSign?: string(name='str_to_sign'),
}

/**
 * UCUpdateUploadContentHashRequest update upload info
 */
model UCUpdateUploadContentHashRequest {
  contentHash?: string(name='content_hash', description='content_hash'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name'),
  contentMd5?: string(name='content_md5', description='content_md5'),
  driveId?: string(name='drive_id', description='drive_id'),
  fileId?: string(name='file_id', description='file_id'),
  overwrite?: boolean(name='overwrite', description='overwrite'),
  size?: int64(name='size', description='size', format='int64'),
  uploadId?: string(name='upload_id', description='upload_id'),
}

/**
 * UCUpdateUploadContentHashResponse
 */
model UCUpdateUploadContentHashResponse {
  contentHash?: string(name='content_hash'),
  contentHashName?: string(name='content_hash_name'),
  contentMd5?: string(name='content_md5'),
  driveId?: string(name='drive_id'),
  fileId?: string(name='file_id'),
  isRapidUpload?: boolean(name='is_rapid_upload'),
  size?: int64(name='size', format='int64'),
  updateTime?: string(name='update_time'),
  uploadId?: string(name='upload_id'),
}

/**
 * Unassign facegroup item request
 */
model UnAssignFaceGroupItemRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  faceGroupId?: string(name='face_group_id', description='face_group_id', example='abc'),
  fileId: string(name='file_id', description='file_id', example='abc'),
  groupId?: string(name='group_id', description='group_id 列举人脸分组接口中获取', example='"group-asdasdasdeop"'),
}

/**
 * 
 */
model UnionAuthentication {
  AuthenticationType?: string(name='AuthenticationType'),
  CreatedAt?: int64(name='CreatedAt', format='int64'),
  Extra?: string(name='Extra'),
  Identity?: string(name='Identity'),
  Status?: string(name='Status'),
  UnionID?: string(name='UnionID'),
}

/**
 * 
 */
model UnionDomainUserBind {
  AuthenticationType?: string(name='AuthenticationType'),
  DomainID?: string(name='DomainID'),
  Extra?: string(name='Extra'),
  Identity?: string(name='Identity'),
  UnionID?: string(name='UnionID'),
  UserID?: string(name='UserID'),
}

/**
 * 
 */
model UpdateAppRequest {
  httpheaders?: map[string]string,
  appId: string(name='app_id', description='App ID', example='CNMrhxwPJHAReExa'),
  appName?: string(name='app_name', description='App名称', example='图片分享应用', maxLength=128, minLength=1),
  description?: string(name='description', description='App描述', example='测试专用', maxLength=1024, minLength=0),
  logo?: string(name='logo', description='App图标', example='https://app.com/logo.jpg'),
  redirectUri?: string(name='redirect_uri', description='App回调地址', example='https://app.com/callback'),
  scope?: [ string ](name='scope', description='App权限列表', enum='FILE.ALL, SHARE.ALL, STORAGEFILE.ALL, STORAGE.ALL, DRIVE.ALL, USER.ALL', items='{"type":"string"}'),
  type?: string(name='type', default='WebServer', description='App类型', enum='WebServer, WebBrowser, Native, JWT', example='WebServer'),
}

/**
 * update benefit to benefit package mapping request
 */
model UpdateBenefitToPkgMappingRequest {
  allowConfigByTenant?: boolean(name='allow_config_by_tenant'),
  allowConfigByUser?: boolean(name='allow_config_by_user'),
  allowShowToTenant?: boolean(name='allow_show_to_tenant'),
  allowShowToUser?: boolean(name='allow_show_to_user'),
  benefitId?: string(name='benefit_id'),
  benefitMeta?: BenefitMeta(name='benefit_meta'),
  benefitPkgId?: string(name='benefit_pkg_id'),
  name?: string(name='name'),
  userMeta?: string(name='user_meta'),
}

/**
 * 
 */
model UpdateBenefitToPkgMappingResponse {
}

/**
 * update domain request
 */
model UpdateDomainRequest {
  httpheaders?: map[string]string,
  authConfig?: object(name='auth_config', additionalProperties='{"$ref":"#/definitions/AuthConfig"}'),
  authDingdingAppId?: string(name='auth_dingding_app_id', description='钉钉 App Id', example='abc'),
  authDingdingAppSecret?: string(name='auth_dingding_app_secret', description='钉钉 App Secret', example='abc'),
  authDingdingEnable?: boolean(name='auth_dingding_enable', description='启用钉钉认证', example=true),
  authRamAppId?: string(name='auth_ram_app_id', description='RAM App Id', example='abc'),
  authRamAppSecret?: string(name='auth_ram_app_secret', description='RAM App Secret', example='abc'),
  authRamEnable?: boolean(name='auth_ram_enable', description='启用 RAM 认证', example=true),
  customBenefits?: object(name='custom_benefits', additionalProperties='{"$ref":"#/definitions/CustomBenefitMetaRequest"}'),
  dataHashName?: string(name='data_hash_name', description='数据 Hash 算法', example='sha1'),
  description?: string(name='description', description='Domain 描述', example='my test domain'),
  domainId: string(name='domain_id', description='Domain ID', example='sz111'),
  domainName?: string(name='domain_name', description='Domain 名称', example='test_domain'),
  eventFilenameMatches?: string(name='event_filename_matches', description='事件通知 MNS 匹配文件名', example='abc'),
  eventMnsEndpoint?: string(name='event_mns_endpoint', description='事件通知 MNS Endpoint', example='http://abc.mns.cn-shenzhen.aliyuncs.com'),
  eventMnsTopic?: string(name='event_mns_topic', description='事件通知 MNS Topic', example='abc'),
  eventNames?: [ string ](name='event_names', description='事件名列表', example='abc', items='{"type":"string"}'),
  eventRoleArn?: string(name='event_role_arn', description='事件通知 Role Arn'),
  getBenefit?: boolean(name='get_benefit'),
  groupSingleDriveEnabled?: boolean(name='group_single_drive_enabled', description='单团队单drive', example=true),
  initDriveEnable?: boolean(name='init_drive_enable', description='开启自动初始化 Drive', example=true),
  initDriveSize?: int64(name='init_drive_size', description='自动初始化 Drive 大小', example=1024, format='int64'),
  initDriveStoreId?: string(name='init_drive_store_id', description='自动初始化 Drive 使用 Store ID', example='1'),
  publishedAppAccessStrategy?: AppAccessStrategy(name='published_app_access_strategy'),
  sharable?: boolean(name='sharable', description='开启分享', example=true),
  sizeQuota?: int64(name='size_quota', description='逻辑空间quota，默认为-1，无限制，单位为字节', example=1099511627776, format='int64'),
  status?: int64(name='status', description='状态', example=0, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userCountQuota?: int64(name='user_count_quota', description='用户数quota，默认为-1，无限制', example=100, format='int64'),
  userSingleDriveEnabled?: boolean(name='user_single_drive_enabled', description='单用户单drive', example=true),
}

/**
 * create domain response
 */
model UpdateDomainResponse {
  apiCname?: string(name='api_cname', description='Domain APICName', example='"pdsapi.yoursite.com"'),
  appCname?: string(name='app_cname', description='Domain AppCName', example='"pdsapp.yoursite.com"'),
  appConfig?: AppConfig(name='app_config'),
  archiveConfig?: ArchiveConfig(name='archive_config'),
  archiveFilesEnable?: boolean(name='archive_files_enable', description='打包下载配置'),
  auditLogConfig?: AuditLogConfig(name='audit_log_config'),
  authCname?: string(name='auth_cname', description='Domain AuthCName', example='"pdsauth.yoursite.com"'),
  authConfig?: object(name='auth_config', additionalProperties='{"$ref":"#/definitions/AuthConfig"}', description='登录相关信息', example='{}'),
  authDingdingAppId?: string(name='auth_dingding_app_id', description='钉钉 App Id', example='abc'),
  authDingdingAppSecret?: string(name='auth_dingding_app_secret', description='钉钉 App Secret', example='abc'),
  authDingdingEnable?: boolean(name='auth_dingding_enable', description='是否开启了钉钉认证', example=true),
  authRamAppId?: string(name='auth_ram_app_id', description='RAM App Id', example='abc'),
  authRamAppSecret?: string(name='auth_ram_app_secret', description='RAM App Secret', example='abc'),
  authRamEnable?: boolean(name='auth_ram_enable', description='是否开启了 RAM 认证', example=true),
  benefits?: object(name='benefits', additionalProperties='{"$ref":"#/definitions/BenefitMetaResponse"}'),
  createdAt?: string(name='created_at', description='Domain 创建时间', example='"2019-08-31T12:58:31.137Z"'),
  dataHashName?: string(name='data_hash_name', description='数据 Hash 算法', example='sha1'),
  defaultSuperAdminConfig?: DomainSuperAdminConfig(name='default_super_admin_config'),
  description?: string(name='description', description='Domain 描述', example='my test domain'),
  domainId?: string(name='domain_id', description='Domain ID', example='sz111'),
  domainName?: string(name='domain_name', description='Domain 描述', example='my test domain'),
  endpoints?: DomainEndpointsResponse(name='endpoints'),
  enterpriseCustomizedLogin?: boolean(name='enterprise_customized_login', description='企业文件管理专属登录开关'),
  eventFilenameMatches?: string(name='event_filename_matches', description='事件通知 MNS 匹配文件名', example='abc'),
  eventMnsEndpoint?: string(name='event_mns_endpoint', description='事件通知 MNS Endpoint', example='http://abc.mns.cn-shenzhen.aliyuncs.com'),
  eventMnsTopic?: string(name='event_mns_topic', description='事件通知 MNS Topic', example='abc'),
  eventNames?: [ string ](name='event_names', description='事件名列表', example='abc', items='{"type":"string"}'),
  eventRoleArn?: string(name='event_role_arn', description='事件通知 Role Arn'),
  expireTime?: int64(name='expire_time', description='预付费domain过期时间', format='int64'),
  fileCategory?: object(name='file_category', additionalProperties='{"type":"string"}'),
  groupConfig?: GroupConfig(name='group_config'),
  groupSingleDriveEnabled?: boolean(name='group_single_drive_enabled'),
  initDriveEnable?: boolean(name='init_drive_enable', description='是否开启了自动初始化 Drive', example=true),
  initDriveSize?: int64(name='init_drive_size', description='自动初始化 Drive 大小', example=1024, format='int64'),
  initDriveStoreId?: string(name='init_drive_store_id', description='自动初始化 Drive 所用 Store ID', example='1'),
  mode?: string(name='mode', description='Domain 类型', example='StandardMode'),
  multiRevisionConfig?: BaseMultiRevisionConfigResponse(name='multi_revision_config'),
  officeEditConfig?: OfficeEditConfig(name='office_edit_config'),
  officePreviewConfig?: OfficePreviewConfig(name='office_preview_config'),
  parallelUploadEnabled?: boolean(name='parallel_upload_enabled'),
  parentDomainId?: string(name='parent_domain_id', description='Parent Domain ID', example='sz111'),
  pathType?: string(name='path_type', description='Domain 类型', example='CCPPath'),
  prepaidPackage?: string(name='prepaid_package', description='预付费套餐'),
  publishedAppAccessStrategy?: AppAccessStrategy(name='published_app_access_strategy'),
  recycleBinConfig?: RecycleBinConfig(name='recycle_bin_config'),
  roleConfig?: RoleConfig(name='role_config'),
  serviceCode?: string(name='service_code', description='Domain ServiceCode', example='"edm"'),
  sharable?: boolean(name='sharable', description='是否开启了共享', example=true),
  shareDetail?: ShareDetailResponse(name='share_detail'),
  shareLinkDetail?: ShareLinkDetailResponse(name='share_link_detail'),
  shareLinkEnabled?: boolean(name='share_link_enabled', description='是否开启了分享', example=true),
  sizeQuota?: int64(name='size_quota', description='容量配额', format='int64'),
  sizeQuotaUsed?: int64(name='size_quota_used', format='int64'),
  spiInstanceId?: string(name='spi_instance_id', description='SPI 实例 id'),
  status?: int64(name='status', description='domain状态：创建中，正常，已过期', format='int64'),
  storeLevel?: string(name='store_level', description='存储级别', example='Standard'),
  storeRegionList?: [ string ](name='store_region_list', description='存储 Region 列表', example='cn-hangzhou', items='{"type":"string"}'),
  subdomainConfig?: SubdomainConfig(name='subdomain_config'),
  updatedAt?: string(name='updated_at', description='Domain 更新时间', example='"2019-08-31T12:58:31.137Z"'),
  usedSize?: int64(name='used_size', description='逻辑空间使用量，单位为字节', example=1073741824, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userCountQuota?: int64(name='user_count_quota', description='用户数配额', format='int64'),
  userSingleDriveEnabled?: boolean(name='user_single_drive_enabled', description='user和group只能有一个drive的开关'),
  videoPreviewAppConfig?: VideoPreviewAppConfig(name='video_preview_app_config'),
  videoPreviewConfig?: VideoPreviewConfig(name='video_preview_config'),
  watermarkConfig?: BaseWatermarkConfigResponse(name='watermark_config'),
}

/**
 * update drive data process template request
 */
model UpdateDriveDataProcessTemplateRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  templateId?: string(name='template_id'),
}

/**
 * Update drive request
 */
model UpdateDriveRequest {
  category?: string(name='category'),
  description?: string(name='description', description='描述信息', example='ccp team drive', maxLength=1024),
  driveId: string(name='drive_id', description='Drive ID', example='123'),
  driveName?: string(name='drive_name', description='Drive 名称', example='ccpdrive', maxLength=1024),
  encryptDataAccess?: boolean(name='encrypt_data_access', default=false, description='授权访问加密数据', example=true),
  encryptMode?: string(name='encrypt_mode', description='加密模式', example='server'),
  status?: string(name='status', default='enabled', description='状态', enum='disabled, enabled', example='enabled'),
  subdomainId?: string(name='subdomain_id', description='Subdomain ID', example='hz-123'),
  totalSize?: int64(name='total_size', default=0, description='总大小,单位Byte [如果设置 -1 代表不限制]', example=1024, format='int64'),
}

/**
 * Update drive response
 */
model UpdateDriveResponse {
  actionList?: [ string ](name='action_list', items='{"type":"string"}'),
  category?: string(name='category'),
  createdAt?: string(name='created_at'),
  creator?: string(name='creator', description='Drive 创建者', example='ccp'),
  description?: string(name='description', description='Drive 备注信息', example='ccp team drive'),
  domainId?: string(name='domain_id', description='Domain ID', example='hz999'),
  driveId?: string(name='drive_id', description='Drive ID', example='123'),
  driveName?: string(name='drive_name', description='Drive 名称', example='ccpdrive'),
  driveType?: string(name='drive_type', description='Drive 类型', example='normal'),
  encryptDataAccess?: boolean(name='encrypt_data_access'),
  encryptMode?: string(name='encrypt_mode'),
  owner?: string(name='owner', description='Drive 所有者', example='ccp'),
  ownerType?: string(name='owner_type', description='Drive 所有者类型', example='user'),
  permission?: object(name='permission', additionalProperties='{"$ref":"#/definitions/IDPermission"}'),
  relativePath?: string(name='relative_path', description='Drive存储基于store的相对路径，domain的PathType为OSSPath时返回', example='/a/b/e/'),
  status?: string(name='status', description='Drive 状态', example='enabled'),
  storeId?: string(name='store_id', description='存储 ID, domain的PathType为OSSPath时返回', example='123'),
  subdomainId?: string(name='subdomain_id', description='subdomain_id'),
  totalSize?: int64(name='total_size', description='Drive 空间总量', example=102400, format='int64'),
  updatedAt?: string(name='updated_at'),
  usedSize?: int64(name='used_size', description='Drive 空间已使用量', example=1024, format='int64'),
}

/**
 * Update face group info request
 */
model UpdateFaceGroupInfoRequest {
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  groupCoverFaceId?: string(name='group_cover_face_id', description='group_cover_face_id', example='"abcdefg"'),
  groupId: string(name='group_id', description='group_id 列举人脸分组接口中获取', example='"group-asdasdasdeop"'),
  groupName?: string(name='group_name', description='group_name', example='"张XX"'),
  remarks?: string(name='remarks', description='remarks', example='"hidden"'),
}

/**
 * 更新文件元数据
 */
model UpdateFileMetaRequest {
  additionData?: object(name='addition_data', additionalProperties='{"type":"object"}', description='addition_data'),
  category?: string(name='category'),
  checkNameMode?: string(name='check_name_mode', default='ignore', description='check_name_mode', enum='ignore, auto_rename, refuse'),
  customField1?: string(name='custom_field_1'),
  customField2?: string(name='custom_field_2'),
  customIndexKey?: string(name='custom_index_key'),
  customType?: string(name='custom_type'),
  description?: string(name='description', description='description
type: string', example='description', maxLength=1024),
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode'),
  exFieldsInfo?: object(name='ex_fields_info', additionalProperties='{"type":"object"}', description='ex_fields_info'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  fileIdPath?: string(name='file_id_path'),
  hidden?: boolean(name='hidden', default=false, description='hidden
type: boolean', example=false),
  labels?: [ string ](name='labels', description='labels', example='label1, label2', items='{"type":"string"}'),
  localModifiedAt?: string(name='local_modified_at'),
  meta?: string(name='meta'),
  mimeExtension?: string(name='mime_extension'),
  mimeType?: string(name='mime_type'),
  name?: string(name='name', description='name', example='ccp.jpg', maxLength=1024, minLength=1),
  referer?: string(name='referer'),
  shareId?: string(name='share_id'),
  signToken?: string(name='sign_token'),
  starred?: boolean(name='starred', default=false, description='starred
type: boolean', example=false),
  takenAt?: string(name='taken_at'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
}

/**
 * 更新文件元数据 response
 */
model UpdateFileMetaResponse {
  actionList?: [ string ](name='action_list', description='action_list', items='{"type":"string"}'),
  autoDeleteLeftSec?: int64(name='auto_delete_left_sec', description='auto_delete_left_sec', example=10000, format='int64'),
  category?: string(name='category', description='category', enum='doc, image, audio, video', example='doc'),
  characteristicHash?: string(name='characteristic_hash', description='CharacteristicHash'),
  contentHash?: string(name='content_hash', description='Content Hash', example='EA4942AA8761213890A5C386F88E6464D2C31CA3'),
  contentHashName?: string(name='content_hash_name', description='content_hash_name', enum='sha1', example='sha1'),
  contentType?: string(name='content_type', description='content_type', example='application/json'),
  crc64Hash?: string(name='crc64_hash', description='crc64_hash'),
  createdAt?: string(name='created_at', description='created_at', example='2019-08-20T06:51:27.292Z'),
  creatorId?: string(name='creator_id', description='creator_id', example='123abc'),
  creatorName?: string(name='creator_name', description='creator_name', example='test_user'),
  creatorType?: string(name='creator_type', description='creator_type', example='User, AliUser'),
  customField1?: string(name='custom_field_1', description='custom_field_1'),
  customField2?: string(name='custom_field_2', description='custom_field_2'),
  customType?: string(name='custom_type', description='custom_type'),
  description?: string(name='description', description='description', example='file description'),
  domainId?: string(name='domain_id', description='DomainID', example='test001', pattern='[a-z0-9A-Z]+'),
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  driveId?: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  encryptMode?: string(name='encrypt_mode', description='encrypt_mode', example='pin'),
  exFieldsInfo?: object(name='ex_fields_info', additionalProperties='{"type":"object"}', description='ex_fields_info'),
  fileExtension?: string(name='file_extension', description='file_extension', example='jpg'),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  filePathType?: string(name='file_path_type', description='TODO 先不在API上透出该字段，file_path_type目前在edm中返回；path type是否在PDS通用逻辑中展示，展示的含义是什么，需要再做分析'),
  hidden?: boolean(name='hidden', description='Hidden
type: boolean', enum='false, true', example=false),
  imageMediaMetadata?: ImageMediaResponse(name='image_media_metadata'),
  investigationStatus?: int64(name='investigation_status', description='InvestigationStatus', format='int64'),
  labels?: [ string ](name='labels', description='labels', example='label1:1, label2:2', items='{"type":"string"}'),
  lastModifierId?: string(name='last_modifier_id', description='last_modifier_id', example='123abc'),
  lastModifierName?: string(name='last_modifier_name', description='last_modifier_name', example='test_user'),
  lastModifierType?: string(name='last_modifier_type', description='last_modifier_type', example='User, AliUser'),
  localCreatedAt?: string(name='local_created_at', description='local_created_at', example='2019-08-20T06:51:27.292Z'),
  localModifiedAt?: string(name='local_modified_at'),
  meta?: string(name='meta'),
  mimeExtension?: string(name='mime_extension', description='mime_extension', example='mov'),
  mimeType?: string(name='mime_type', description='mime_type', example='video/quicktime'),
  name: string(name='name', description='name', example='ccp.jpg', pattern='[a-zA-Z0-9.-]{1,1000}'),
  parentFileId?: string(name='parent_file_id', description='parent_file_id', example='root', maxLength=50, minLength=40, pattern='[a-z0-9]{1,50}'),
  punishFlag?: int64(name='punish_flag', description='PunishFlag', format='int64'),
  punishReason?: string(name='punish_reason', description='PunishReason'),
  revisionId?: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  revisionVersion?: int64(name='revision_version', description='revision_version', example=1024, format='int64'),
  shareId?: string(name='share_id'),
  size?: int64(name='size', description='Size', example=1024, format='int64', minimum=0),
  starred?: boolean(name='starred', description='starred
type: boolean', example=false),
  status?: string(name='status', description='status', enum='uploading, available', example='available'),
  streamsInfo?: object(name='streams_info', additionalProperties='{"$ref":"#/definitions/SimpleStreamInfo"}', description='@Deprecated streams url info'),
  syncDeviceFlag?: boolean(name='sync_device_flag', description='sync_device_flag'),
  syncFlag?: boolean(name='sync_flag', description='sync_flag'),
  syncMeta?: string(name='sync_meta', description='sync_meta'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  thumbnailUrls?: object(name='thumbnail_urls', additionalProperties='{"type":"string"}', description='thumbnail_urls'),
  trashedAt?: string(name='trashed_at', description='trashed_at', format='date-time'),
  type?: string(name='type', description='type', enum='file, folder', example='file'),
  updatedAt?: string(name='updated_at', description='updated_at', format='date-time'),
  uploadId?: string(name='upload_id', description='upload_id', example='C9DCFE5A82644AC7A02DB74C30C934A6'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  userMeta?: string(name='user_meta', description='user_meta', example='user_meta'),
  userTags?: object(name='user_tags', additionalProperties='{"type":"string"}', description='user_tags'),
  videoMediaMetadata?: VideoMediaResponse(name='video_media_metadata'),
  videoPreviewMetadata?: VideoPreviewResponse(name='video_preview_metadata'),
}

/**
 * update identity to benefit pkg mapping request
 */
model UpdateIdentityToBenefitPkgMappingRequest {
  amount?: int64(name='amount', description='权益包数量', example=1, format='int64'),
  benefitPkgId: string(name='benefit_pkg_id', description='权益包的唯一标识', example='"40cb7794c9294"'),
  customBenefitMeta?: object(name='custom_benefit_meta', additionalProperties='{"$ref":"#/definitions/CustomBenefitMeta"}', description='实体权益包关联的自定义Meta'),
  deliveryId?: string(name='delivery_id', description='权益下发的唯一标识', example='"123ace93f0123d"'),
  domainId?: string(name='domain_id', description='domain ID', example='sz100'),
  expireTime?: int64(name='expire_time', description='权益包超期时间的时间戳，单位为毫秒', example=1633167071000, format='int64'),
  identityId: string(name='identity_id', description='实体的唯一标识，如 userID', example='"user1"'),
  identityType: string(name='identity_type', description='实体类型，当前支持user类型实体', example='user'),
  nonceId?: string(name='nonce_id', description='nonce ID', example='"123ace93f0123d"'),
}

/**
 * 
 */
model UpdateIdentityToBenefitPkgMappingResponse {
}

/**
 * update locationCluster request
 */
model UpdateLocationDateClusterRequest {
  clusterId?: string(name='cluster_id'),
  customLabels?: object(name='custom_labels', additionalProperties='{"type":"string"}'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  title?: string(name='title'),
}

/**
 * 更新版本元数据
 */
model UpdateRevisionRequest {
  driveId: string(name='drive_id', description='drive_id', example='1', pattern='[0-9]+'),
  fileId: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  keepForever?: boolean(name='keep_forever', default=false, description='keep_forever
type: boolean', example=false),
  referer?: string(name='referer'),
  revisionDescription?: string(name='revision_description', description='revision_description
type: string', example='description', maxLength=1024),
  revisionId: string(name='revision_id', description='revision_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d', maxLength=50, minLength=40, pattern='[a-z0-9.-_]{1,50}'),
  signToken?: string(name='sign_token'),
}

/**
 * 
 */
model UpdateShareLinkPermissionRequest {
  creatable?: boolean(name='creatable', description='允许上传', example=true),
  disableDownload?: boolean(name='disable_download', description='禁止下载分享中的文件', example=true),
  disablePreview?: boolean(name='disable_preview', description='禁止预览分享中的文件', example=true),
  disableSave?: boolean(name='disable_save', description='禁止转存分享中的文件', example=true),
  disableVisible?: boolean(name='disable_visible', description='分享中的文件不可见', example=true),
  downloadLimit?: int64(name='download_limit', description='分享下载次数限制', example=10, format='int64'),
  officeEditable?: boolean(name='office_editable', description='允许在线编辑文档', example=true),
  previewLimit?: int64(name='preview_limit', description='分享预览次数限制', example=10, format='int64'),
  requireLogin?: boolean(name='require_login', description='企业内(domain)登录后才允许使用分享', example=true),
  saveDownloadLimit?: int64(name='save_download_limit', description='分享转存和下载的总次数限制', example=10, format='int64'),
  saveLimit?: int64(name='save_limit', description='分享转存次数限制', example=10, format='int64'),
}

/**
 * update_share_link request
 */
model UpdateShareLinkRequest {
  comments?: string(name='comments', description='comments', example='xxx'),
  creatable?: boolean(name='creatable', description='允许上传', example=true),
  description?: string(name='description', description='description', example='desc'),
  disableDownload?: boolean(name='disable_download', description='禁止下载分享中的文件', example=true),
  disablePreview?: boolean(name='disable_preview', description='禁止预览分享中的文件', example=true),
  disableSave?: boolean(name='disable_save', description='禁止转存分享中的文件', example=true),
  disableVisible?: boolean(name='disable_visible', description='分享中的文件不可见', example=true),
  downloadCount?: int64(name='download_count', description='download_count', example=7, format='int64'),
  downloadLimit?: int64(name='download_limit', description='分享下载次数限制', example=10, format='int64'),
  enableFileChangedNotify?: boolean(name='enable_file_changed_notify', description='enable_file_changed_notify', example=true),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z', format='date-time'),
  isSubscribed?: boolean(name='is_subscribed', description='is_subscribed', example=true),
  numOfSubscribers?: int64(name='num_of_subscribers', description='num_of_subscribers', example=7, format='int64'),
  officeEditable?: boolean(name='office_editable', description='允许在线编辑文档', example=true),
  previewCount?: int64(name='preview_count', description='preview_count', example=7, format='int64'),
  previewLimit?: int64(name='preview_limit', description='分享预览次数限制', example=10, format='int64'),
  reportCount?: int64(name='report_count', description='report_count', example=7, format='int64'),
  requireLogin?: boolean(name='require_login', description='企业内(domain)登录后才允许使用分享', example=true),
  saveCount?: int64(name='save_count', description='save_count', example=7, format='int64'),
  saveDownloadLimit?: int64(name='save_download_limit', description='分享转存和下载的总次数限制', example=10, format='int64'),
  saveLimit?: int64(name='save_limit', description='分享转存次数限制', example=10, format='int64'),
  shareIcon?: string(name='share_icon', description='share_icon', example='xxx'),
  shareId?: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
  shareName?: string(name='share_name', description='share_name', example='name'),
  sharePwd?: string(name='share_pwd', description='share_pwd', example='12ABcd'),
  status?: string(name='status', description='status', example='enabled'),
  videoPreviewCount?: int64(name='video_preview_count', description='video_preview_count', example=7, format='int64'),
}

/**
 * update_share_link response
 */
model UpdateShareLinkResponse {
  accessCount?: int64(name='access_count', description='access_count', example=1, format='int64'),
  category?: string(name='category', description='Category', example='xxx'),
  comments?: string(name='comments', description='comments', example='xxx'),
  creatable?: boolean(name='creatable', description='允许上传', example=true),
  creatableFileIdList?: [ string ](name='creatable_file_id_list', description='允许上传的目录列表', example='xxx', items='{"type":"string"}'),
  createdAt?: string(name='created_at', description='created_at', example='2006-01-02T15:04:05.999Z', format='date-time'),
  creator?: string(name='creator', description='creator', example='xxx'),
  description?: string(name='description', description='description', example='desc'),
  disableDownload?: boolean(name='disable_download', description='禁止下载分享中的文件', example=true),
  disablePreview?: boolean(name='disable_preview', description='禁止预览分享中的文件', example=true),
  disableSave?: boolean(name='disable_save', description='禁止转存分享中的文件', example=true),
  disableVisible?: boolean(name='disable_visible', description='分享中的文件不可见', example=true),
  downloadCount?: int64(name='download_count', description='下载次数', example=1, format='int64'),
  downloadLimit?: int64(name='download_limit', description='分享下载次数限制', example=10, format='int64'),
  driveFileList?: [ ShareFile ](name='drive_file_list', description='file_list', example='[object Object], [object Object]', items='{"$ref":"#/definitions/ShareFile"}'),
  driveId?: string(name='drive_id', description='drive_id', example='1'),
  enableFileChangedNotify?: boolean(name='enable_file_changed_notify', description='enable_file_changed_notify', example=true),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z', format='date-time'),
  expired?: boolean(name='expired', description='expired', example=false),
  fileId?: string(name='file_id', description='file_id', example='5d5b846942cf94fa72324c14a4bda34e81da635d'),
  fileIdList?: [ string ](name='file_id_list', description='file_id_list', example='5d5b846942cf94fa72324c14a4bda34e81da635d, file_id_2', items='{"type":"string"}'),
  filePathList?: [ string ](name='file_path_list', description='file_id_list', example='/SD2/, /HD2/', items='{"type":"string"}'),
  isSubscribed?: boolean(name='is_subscribed', description='is_subscribed', example=true),
  numOfSubscribers?: int64(name='num_of_subscribers', description='num_of_subscribers', example=7, format='int64'),
  officeEditable?: boolean(name='office_editable', description='允许在线编辑文档', example=true),
  previewCount?: int64(name='preview_count', description='preview_count', example=1, format='int64'),
  previewLimit?: int64(name='preview_limit', description='分享预览次数限制', example=10, format='int64'),
  reportCount?: int64(name='report_count', description='举报次数', example=1, format='int64'),
  requireLogin?: boolean(name='require_login', description='企业内(domain)登录后才允许使用分享', example=true),
  saveCount?: int64(name='save_count', description='转存次数', example=1, format='int64'),
  saveDownloadLimit?: int64(name='save_download_limit', description='分享转存和下载的总次数限制', example=10, format='int64'),
  saveLimit?: int64(name='save_limit', description='分享转存次数限制', example=10, format='int64'),
  shareAllFiles?: boolean(name='share_all_files', description='是否分享整个drive中的文件，仅文件分享才有效，true时file_id_list字段无效', example=true),
  shareIcon?: string(name='share_icon', description='share_icon', example='xxx'),
  shareId?: string(name='share_id', description='share_id', example='z6e81Up4u3GDBoJ741dm8z8fZBc2dh8gW'),
  shareMsg?: string(name='share_msg', description='share_msg', example='复制这条消息并打开app，即可跳转到对应的分享页面'),
  shareName?: string(name='share_name', description='share_name', example='name'),
  sharePolicy?: string(name='share_policy', description='share_policy', enum='url, msg', example='url'),
  sharePwd?: string(name='share_pwd', description='share_pwd', example='12ABcd'),
  shareUrl?: string(name='share_url', description='share_url', example='https://www.aliyundrive.com/sharelinks/index/abcdefghi'),
  status?: string(name='status', description='status', example='xxx'),
  updatedAt?: string(name='updated_at', description='updated_at', example='2006-01-02T15:04:05.999Z', format='date-time'),
  videoPreviewCount?: int64(name='video_preview_count', description='音视频播放次数', example=1, format='int64'),
  viewId?: string(name='view_id', description='ViewID', example='xxx'),
}

/**
 * update share request
 */
model UpdateShareRequest {
  description?: string(name='description', description='description', example='share description', maxLength=1024),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z'),
  permissions?: [ string ](name='permissions', description='permissions', example='', items='{"type":"string"}'),
  shareId: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6'),
  shareName?: string(name='share_name', description='share_name', example='new_share_name'),
  sharePolicy?: [ SharePermissionPolicy ](name='share_policy', description='share_policy', items='{"$ref":"#/definitions/SharePermissionPolicy"}'),
  status?: string(name='status', description='status', enum='enabled, disabled', example='enabled'),
}

/**
 * Update share response
 */
model UpdateShareResponse {
  createdAt?: string(name='created_at', description='created_at', example='2006-01-02T15:04:05.999Z'),
  creator?: string(name='creator', description='creator', example='xxx'),
  description?: string(name='description', description='description', example='share description'),
  domainId?: string(name='domain_id', description='domain_id', example='domain-1'),
  driveId?: string(name='drive_id', description='drive_id', example='1'),
  expiration?: string(name='expiration', description='expiration', example='2006-01-02T15:04:05.999Z'),
  expired?: boolean(name='expired', description='expired', example=false),
  owner?: string(name='owner', description='owner', example='xxx'),
  ownerType?: string(name='owner_type', description='owner', example='xxx'),
  permissions?: [ string ](name='permissions', description='permissions', example='', items='{"type":"string"}'),
  shareFileId?: string(name='share_file_id', description='share_file_id'),
  shareFilePath?: string(name='share_file_path', description='share_path', example='/a/b/c/'),
  shareId?: string(name='share_id', description='share_id', example='3d336314-63c8-4d96-bce0-17aefb6833b6'),
  shareName?: string(name='share_name', description='share_name', example='new_share'),
  sharePolicy?: [ SharePermissionPolicy ](name='share_policy', items='{"$ref":"#/definitions/SharePermissionPolicy"}'),
  status?: string(name='status', description='status', example='enabled'),
  updatedAt?: string(name='updated_at', description='updated_at', example='2006-01-02T15:04:05.999Z'),
}

/**
 * Update story request
 */
model UpdateStoryRequest {
  cover?: StoryFile(name='cover'),
  customId?: string(name='custom_id', description='custom_id'),
  customLabels?: object(name='custom_labels', additionalProperties='{"type":"object"}', description='custom_labels'),
  driveId: string(name='drive_id', description='drive_id', example='"101"', pattern='[0-9]+'),
  storyId: string(name='story_id', description='story_id'),
  storyName?: string(name='story_name', description='story_name'),
}

/**
 * 
 */
model UpdateSubdomainMgmtRequest {
  description?: string(name='description', description='描述', example='"描述-1"'),
  domainId: string(name='domain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
  name?: string(name='name', description='名称', example='"subdomain-1"'),
  sharable?: boolean(name='sharable', description='是否开启了共享', example=true),
  shareLinkEnabled?: boolean(name='share_link_enabled', description='是否开启了分享', example=true),
  status?: int64(name='status', description='状态', example=0, format='int64'),
  subdomainId: string(name='subdomain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
  totalSize?: int64(name='total_size', description='逻辑空间quota，-1表示无限制，单位为字节', example=1073741824, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userQuota?: int64(name='user_quota', description='用户数quota，-1表示无限制', example=100, format='int64'),
}

/**
 * 
 */
model UpdateSubdomainRequest {
  description?: string(name='description', description='描述', example='"描述-1"'),
  name?: string(name='name', description='名称', example='"subdomain-1"'),
  sharable?: boolean(name='sharable', description='是否开启了共享', example=true),
  shareLinkEnabled?: boolean(name='share_link_enabled', description='是否开启了分享', example=true),
  status?: int64(name='status', description='状态', example=0, format='int64'),
  subdomainId: string(name='subdomain_id', description='用以唯一标识subdomain', example='"c477c77a-aea8-413e-9ff0-30c24eeeae01"'),
  totalSize?: int64(name='total_size', description='逻辑空间quota，-1表示无限制，单位为字节', example=1073741824, format='int64'),
  usedSizeRefreshInterval?: int64(name='used_size_refresh_interval', description='逻辑空间刷新周期，单位：秒', example=60, format='int64'),
  userQuota?: int64(name='user_quota', description='用户数quota，-1表示无限制', example=100, format='int64'),
}

/**
 * 
 */
model UpdateSubdomainResponse {
}

/**
 * Update view request
 */
model UpdateViewRequest {
  category: string(name='category', description='category', example='"album"'),
  description?: string(name='description', description='description', example='"abc"'),
  exFieldsInfo?: object(name='ex_fields_info', additionalProperties='{"type":"object"}', description='ex_fields_info'),
  fileCount?: int64(name='file_count', description='description', example=10, format='int64'),
  name?: string(name='name', description='name', example='"abc"'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * 使用form上传所需字段
 */
model UploadFormInfo {
  bucketName?: string(name='bucket_name'),
  objectKey?: string(name='object_key'),
  ossAccessKeyId?: string(name='oss_access_key_id'),
  ossEndPoint?: string(name='oss_end_point'),
  ossSecurityToken?: string(name='oss_security_token'),
  policy?: string(name='policy'),
  signature?: string(name='signature'),
}

/**
 * 
 */
model UploadPartInfo {
  contentType?: string(name='content_type', description='content_type'),
  etag?: string(name='etag', description='etag', example='0CC175B9C0F1B6A831C399E269772661'),
  internalUploadFormInfo?: UploadFormInfo(name='internal_upload_form_info'),
  internalUploadUrl?: string(name='internal_upload_url', description='internal_upload_url', example='https://ccp.data-vpc.aliyuncs.com/xxx/xxx?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx&partNumber=1&uploadId=0CC175B9C0F1B6A831C399E269772661'),
  parallelSha1Ctx?: SHA1CTX(name='parallel_sha1_ctx'),
  partNumber?: int64(name='part_number', description='PartNumber', example=1, format='int64', maximum=10000, minimum=1),
  partSize?: int64(name='part_size', description='PartSize：', example=1024, format='int64', maximum=5368709120),
  uploadFormInfo?: UploadFormInfo(name='upload_form_info'),
  uploadUrl?: string(name='upload_url', description='upload_url', example='https://ccp.data.aliyuncs.com/xxx/xxx?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx&partNumber=1&uploadId=0CC175B9C0F1B6A831C399E269772661'),
}

/**
 * 
 */
model UrlInfo {
  downloadUrl?: string(name='download_url', description='download_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  url?: string(name='url', description='url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 
 */
model UserAuthentication {
  AuthenticationType: string(name='AuthenticationType', description='认证类型', example='mobile'),
  CreatedAt: int64(name='CreatedAt', description='创建时间', example=1556163159820, format='int64'),
  Detail: string(name='Detail', description='详情', example='{name:abc}'),
  DomainID: string(name='DomainID', description='Domain ID', example='5000'),
  Extra?: string(name='Extra', description='额外的信息，比如type为mobile时，此字段为国家编号，不填默认86', example='1'),
  Identity: string(name='Identity', description='唯一身份标识', example='15208345000'),
  LastLoginTime: int64(name='LastLoginTime', description='最后登录时间', example=1556163159820, format='int64'),
  Status: string(name='Status', description='状态', example='normal'),
  UserID: string(name='UserID', description='用户ID', example='00016a587b62b50003deea299a4f5b50'),
  subdomainId?: string(name='subdomain_id', description='subdomain id'),
}

/**
 * 
 */
model UserLogDetail {
  email?: string(name='email', description='email', example='a****6@abc.com'),
  expiredAt?: int64(name='expired_at', format='int64'),
  name?: string(name='name', description='name', example='abc'),
  phone?: string(name='phone', description='phone', example='137****0000'),
  roleId?: string(name='role_id', description='role_id', enum='user, admin, superadmin', example='user'),
  updateTo?: UserLogSettingDetail(name='update_to'),
}

/**
 * 
 */
model UserLogSettingDetail {
  expiredAt?: int64(name='expired_at', format='int64'),
  name?: string(name='name', description='name', example='abc'),
  roleId?: string(name='role_id', description='role_id', enum='user, admin, superadmin', example='user'),
}

/**
 * 
 */
model UserTag {
  key?: string(name='key', description='key', example='123abc'),
  value?: string(name='value', description='value', example='abcdef'),
}

/**
 * 
 */
model VerifyCodeResponse {
  state: string(name='state', description='修改密码的临时授权码', example='csjanwia'),
}

/**
 * 
 */
model VerifyTokenResponse {
  token: string(name='token', description='实人认证的Token', example='"a5**d4"'),
  ttl: int64(name='ttl', description='实人认证token有效秒数，如1800', example=1800, format='int64'),
  url: string(name='url', description='实人认证的URL，包含Token', example='"http://domain/router/?key=value&token=token_value"'),
}

/**
 * 
 */
model VideoMediaAudioStream {
  bitRate?: string(name='bit_rate', description='bit_rate 音频比特率 单位：bps', example='"129280"'),
  channelLayout?: string(name='channel_layout', description='channel_layout 声道布局', example='"5.1", "stereo"'),
  channels?: int64(name='channels', description='channels 音频数/声道数', example=2, format='int64'),
  codeName?: string(name='code_name', description='code_name 音频编码模式', example='"aac"'),
  duration?: string(name='duration', description='duration 单位 秒', example='"7704.573000"'),
  sampleRate?: string(name='sample_rate', description='sample_rate 音频采样率', example='"48000"'),
}

/**
 * 
 */
model VideoMediaMetadata {
  duration?: string(name='duration', description='Duration', example='"10.111"'),
  takenAt?: string(name='taken_at', description='taken_at', example='Timestamp(format="%Y-%m-%dT%H:%M:%SZ")'),
}

/**
 * 
 */
model VideoMediaResponse {
  addressLine?: string(name='address_line', description='address_line', example='北京市昌平区白各庄新村路'),
  city?: string(name='city', description='city', example='杭州'),
  country?: string(name='country', description='country', example='中国'),
  district?: string(name='district', description='district', example='余杭区'),
  duration?: string(name='duration', description='duration 单位 秒', example='"7704.573000"'),
  height?: int64(name='height', default=0, description='height', example=720, format='int64'),
  imageTags?: [ SystemTag ](name='image_tags', description='system_tags', items='{"$ref":"#/definitions/SystemTag"}'),
  location?: string(name='location', description='location', example='40.110333,116.349311'),
  province?: string(name='province', description='province', example='浙江省'),
  time?: string(name='time', description='time', format='date-time'),
  township?: string(name='township', description='township', example='沙河镇'),
  videoMediaAudioStream?: [ VideoMediaAudioStream ](name='video_media_audio_stream', items='{"$ref":"#/definitions/VideoMediaAudioStream"}'),
  videoMediaVideoStream?: [ VideoMediaVideoStream ](name='video_media_video_stream', items='{"$ref":"#/definitions/VideoMediaVideoStream"}'),
  width?: int64(name='width', default=0, description='width', example=1024, format='int64'),
}

/**
 * 
 */
model VideoMediaVideoStream {
  bitrate?: string(name='bitrate', description='bitrate 视频比特率 单位：bps', example='"108420"'),
  clarity?: string(name='clarity', description='clarity 清晰度（扫描）', example='"1080P"'),
  codeName?: string(name='code_name', description='code_name 视频编码模式', example='"h264"'),
  duration?: string(name='duration', description='duration 单位 秒', example='"7704.573000"'),
  fps?: string(name='fps', description='fps 视频平均帧率', example='"25/1"'),
  rotate?: string(name='rotate', description='rotate 视频横屏 竖屏'),
}

/**
 * if OnlineVideoTranscodeEnable then do video_preview play  // 如果是离线转码, 那么用OfflineVideoTranscodeEnable代替, 音频类似
else if appConfig.VideoPlayEnable then do source file play // 音频用AudioPlayEnable代替
else notify user the function not support
 */
model VideoPreviewAppConfig {
  offlineAudioTranscodeEnable?: boolean(name='offline_audio_transcode_enable'),
  offlineVideoTranscodeEnable?: boolean(name='offline_video_transcode_enable'),
  onlineAudioTranscodeEnable?: boolean(name='online_audio_transcode_enable'),
  onlineVideoTranscodeEnable?: boolean(name='online_video_transcode_enable'),
}

/**
 * 音频转码参数
 */
model VideoPreviewAudio {
  audioBitrate?: int64(name='audio_bitrate', format='int64'),
  audioChannel?: int64(name='audio_channel', format='int64'),
  audioCodec?: string(name='audio_codec'),
  audioSampleRate?: int64(name='audio_sample_rate', format='int64'),
}

/**
 * 音频转码配置
 */
model VideoPreviewAudioConfig {
  supportExt?: [ string ](name='support_ext', items='{"type":"string"}'),
  template?: [ VideoPreviewAudioTemplate ](name='template', items='{"$ref":"#/definitions/VideoPreviewAudioTemplate"}'),
}

/**
 * 
 */
model VideoPreviewAudioMeta {
  bitrate?: double(name='bitrate', description='bitrate', example=349461, format='double'),
  channels?: int64(name='channels', description='channels', example=2, format='int64'),
  duration?: double(name='duration', description='duration', example=18.2, format='double'),
  sampleRate?: double(name='sample_rate', description='sample_rate', example=18.2, format='double'),
}

/**
 * 
 */
model VideoPreviewAudioMusicMeta {
  album?: string(name='album', description='album', example='"范特西"'),
  artist?: string(name='artist', description='artist', example='"周杰伦"'),
  coverUrl?: string(name='cover_url', description='cover_url', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  title?: string(name='title', description='title', example='"爱在西元前"'),
}

/**
 * 音频转码模板
 */
model VideoPreviewAudioTemplate {
  audioBitrate?: int64(name='audio_bitrate', format='int64'),
  audioChannel?: int64(name='audio_channel', format='int64'),
  audioCodec?: string(name='audio_codec'),
  audioOutputExt?: string(name='audio_output_ext'),
  audioSampleRate?: int64(name='audio_sample_rate', format='int64'),
  audioTemplateId?: string(name='audio_template_id'),
}

/**
 * 
 */
model VideoPreviewAutoCategoryConfig {
  defaultAudioCategory?: string(name='default_audio_category'),
  defaultVideoCategory?: string(name='default_video_category'),
}

/**
 * 
 */
model VideoPreviewAutoScaleConfig {
  enabled?: boolean(name='enabled'),
  maxLength?: int64(name='max_length', format='int64'),
}

/**
 * 转码备份配置（当前仅运维会用到）
 */
model VideoPreviewBackupConfig {
  countOnce?: int64(name='count_once', format='int64'),
  store?: Store(name='store'),
  storeIdMap?: object(name='store_id_map', additionalProperties='{"type":"string"}'),
}

/**
 * 
 */
model VideoPreviewCdnConfig {
  cacheStore?: Store(name='cache_store'),
  enableM3u8Cache?: boolean(name='enable_m3u8_cache'),
  enabled?: boolean(name='enabled'),
  grayConfig?: ApiConfig(name='gray_config'),
}

/**
 * 转码配置
 */
model VideoPreviewConfig {
  audioConfig?: VideoPreviewAudioConfig(name='audio_config'),
  audioTemplateList?: [ string ](name='audio_template_list', items='{"type":"string"}'),
  audioThumbnail?: VideoPreviewThumbnailConfig(name='audio_thumbnail'),
  autoCategoryConfig?: VideoPreviewAutoCategoryConfig(name='auto_category_config'),
  backupConfig?: VideoPreviewBackupConfig(name='backup_config'),
  cdnConfig?: VideoPreviewCdnConfig(name='cdn_config'),
  drmConfig?: VideoPreviewDrmConfig(name='drm_config'),
  enableConfig?: VideoPreviewEnableConfig(name='enable_config'),
  enabled?: boolean(name='enabled'),
  hlsSignParamsConfig?: VideoPreviewHlsSignParamsConfig(name='hls_sign_params_config'),
  liveTranscodingConfig?: VideoPreviewLiveTranscodingConfig(name='live_transcoding_config'),
  quickVideoConfig?: VideoPreviewQuickVideoConfig(name='quick_video_config'),
  rateLimitConfig?: VideoPreviewRateLimitConfig(name='rate_limit_config'),
  sprite?: VideoPreviewSpriteConfig(name='sprite'),
  store?: Store(name='store'),
  storeIdMap?: object(name='store_id_map', additionalProperties='{"type":"string"}'),
  templateList?: [ string ](name='template_list', items='{"type":"string"}'),
  templateNameMap?: object(name='template_name_map', additionalProperties='{"type":"string"}'),
  templatePolicyConfig?: VideoPreviewTemplatePolicyConfig(name='template_policy_config'),
  thumbnail?: VideoPreviewThumbnailConfig(name='thumbnail'),
  videoConfig?: VideoPreviewVideoConfig(name='video_config'),
  videoFilterConfig?: VideoPreviewVideoFilterConfig(name='video_filter_config'),
}

/**
 * 
 */
model VideoPreviewDrmConfig {
  region?: string(name='region'),
}

/**
 * 转码子开关配置
 */
model VideoPreviewEnableConfig {
  disableOfflineAudioTranscode?: boolean(name='disable_offline_audio_transcode'),
  disableOfflineVideoTranscode?: boolean(name='disable_offline_video_transcode'),
  enableRoleChain?: boolean(name='enable_role_chain'),
  enableTranscodeWhenPlay?: boolean(name='enable_transcode_when_play', description='Deprecated, 后续通过 VideoPreviewNeedTranscodeErrorMap 来判断是否允许重新转码'),
  enableTranscodeWhenUploaded?: boolean(name='enable_transcode_when_uploaded'),
}

/**
 * 
 */
model VideoPreviewHlsSignParamsConfig {
  disableHeaders?: boolean(name='disable_headers'),
  enabled?: boolean(name='enabled'),
  grayConfig?: ApiConfig(name='gray_config'),
}

/**
 * 实时转码配置
 */
model VideoPreviewLiveTranscodingConfig {
  currentVersion?: int64(name='current_version', format='int64'),
  deprecatedVersion?: int64(name='deprecated_version', format='int64'),
  detailCountLimit?: int64(name='detail_count_limit', format='int64'),
  enableConfig?: VideoPreviewLiveTranscodingEnableConfig(name='enable_config'),
  enabled?: boolean(name='enabled'),
  ignoreTemplateList?: [ string ](name='ignore_template_list', items='{"type":"string"}'),
  leadingPrefix?: string(name='leading_prefix'),
  m3u8FilePrefix?: string(name='m3u8_file_prefix'),
  mediaDurationLimit?: double(name='media_duration_limit', format='double'),
  refTaskConfig?: VideoPreviewLiveTranscodingRefTaskConfig(name='ref_task_config'),
  segment?: int64(name='segment', format='int64'),
  subtitleConfig?: VideoPreviewLiveTranscodingSubtitleConfig(name='subtitle_config'),
  templateList?: [ string ](name='template_list', items='{"type":"string"}'),
  templateListSorted?: [ string ](name='template_list_sorted', items='{"type":"string"}'),
  templateNameMap?: object(name='template_name_map', additionalProperties='{"type":"string"}'),
  tsCountWhenInitM3u8?: int64(name='ts_count_when_init_m3u8', description='Mode              string   `json:"mode"`               // 默认media模式
以下几个count需要根据task的status和stage来判断, 当前实时转码的状态', format='int64'),
  tsCountWhenTs404?: int64(name='ts_count_when_ts_404', format='int64'),
  tsFilePrefix?: string(name='ts_file_prefix'),
}

/**
 * 实时转码子开关配置
 */
model VideoPreviewLiveTranscodingEnableConfig {
  disableLiveTranscode?: boolean(name='disable_live_transcode'),
  dropFileCreatedEvent?: boolean(name='drop_file_created_event'),
  enableDumpOldM3u8TaskInfo?: boolean(name='enable_dump_old_m3u8_task_info'),
  enableIgnoreCopiedFile?: boolean(name='enable_ignore_copied_file'),
}

/**
 * 实时转码refTask配置
 */
model VideoPreviewLiveTranscodingRefTaskConfig {
  duration?: double(name='duration', format='double'),
  enabled?: boolean(name='enabled'),
}

/**
 * 实时转码字幕配置
 */
model VideoPreviewLiveTranscodingSubtitleConfig {
  enabled?: boolean(name='enabled'),
  extractFormat?: string(name='extract_format'),
  subtitleLangList?: [ string ](name='subtitle_lang_list', items='{"type":"string"}'),
}

/**
 * hls配置
 */
model VideoPreviewM3U8Config {
  hlsTime?: int64(name='hls_time', format='int64'),
}

/**
 * 离线音频转码task响应
 */
model VideoPreviewOfflineAudioTranscodingTaskResponse {
  status?: string(name='status', description='status, 转码状态', example='finished'),
  templateBitrate?: int64(name='template_bitrate', description='template_bitrate, 音频码率，单位Kbps', example=128, format='int64'),
  templateId?: string(name='template_id', description='template_id, 转码模板id', example='LQ'),
  templateName?: string(name='template_name', description='template_name, 模板文案id', example='pdsLQ'),
  url?: string(name='url', description='url, 播放地址', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 离线视频转码task响应
 */
model VideoPreviewOfflineVideoTranscodingTaskResponse {
  keepOriginalResolution?: boolean(name='keep_original_resolution', description='keep_original_resolution 转码后的视频分辨率是否保持原画(template分辨率大于当前视频)', example=true),
  protectionSystem?: string(name='protection_system', description='protection_system DRM加密方式', example='widevine'),
  status?: string(name='status', description='status, 转码状态', example='finished'),
  templateId?: string(name='template_id', description='template_id, 转码模板id', example='264_720p'),
  url?: string(name='url', description='url, 视频播放地址', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
}

/**
 * 视频转码meta响应
 */
model VideoPreviewPlayInfoMetaResponse {
  duration?: double(name='duration', description='duration, 视频长度', example=123, format='double'),
  height?: int64(name='height', description='height, 视频高度', example=720, format='int64'),
  liveTranscodingMeta?: LiveTranscodingMetaResponse(name='live_transcoding_meta'),
  width?: int64(name='width', description='width, 视频宽度', example=1280, format='int64'),
}

/**
 * 转码信息响应
 */
model VideoPreviewPlayInfoResponse {
  category?: string(name='category', description='deprecated, 使用外层Response中的同名字段替代
category，此字段为保持兼容而继续存在', enum='live_transcoding,  offline_video_transcoding', example='live_transcoding'),
  liveTranscodingSubtitleTaskList?: [ LiveTranscodingSubtitleTaskResponse ](name='live_transcoding_subtitle_task_list', items='{"$ref":"#/definitions/LiveTranscodingSubtitleTaskResponse"}'),
  liveTranscodingTaskList?: [ LiveTranscodingTaskResponse ](name='live_transcoding_task_list', description='边转边播有效', items='{"$ref":"#/definitions/LiveTranscodingTaskResponse"}'),
  masterUrl?: string(name='master_url', description='master playlist 播放地址'),
  meta?: VideoPreviewPlayInfoMetaResponse(name='meta'),
  offlineVideoTranscodingList?: [ VideoPreviewOfflineVideoTranscodingTaskResponse ](name='offline_video_transcoding_list', description='离线转码有效', items='{"$ref":"#/definitions/VideoPreviewOfflineVideoTranscodingTaskResponse"}'),
  quickVideoList?: [ QuickVideoTaskResponse ](name='quick_video_list', description='imm边转边播', items='{"$ref":"#/definitions/QuickVideoTaskResponse"}'),
}

/**
 * 
 */
model VideoPreviewQuickVideoConfig {
  currentVersion?: int64(name='current_version', format='int64'),
  deprecatedVersion?: int64(name='deprecated_version', format='int64'),
  enableConfig?: VideoPreviewLiveTranscodingEnableConfig(name='enable_config'),
  enabled?: boolean(name='enabled'),
  initialTsConfig?: VideoPreviewQuickVideoInitialTsConfig(name='initial_ts_config'),
  leadingPrefix?: string(name='leading_prefix'),
  m3u8FilePrefix?: string(name='m3u8_file_prefix'),
  segment?: int64(name='segment', format='int64'),
  subtitleConfig?: VideoPreviewLiveTranscodingSubtitleConfig(name='subtitle_config'),
  templateList?: [ string ](name='template_list', items='{"type":"string"}'),
  templateNameMap?: object(name='template_name_map', additionalProperties='{"type":"string"}'),
  tsCountWhenTs404?: int64(name='ts_count_when_ts_404', format='int64'),
}

/**
 * 快速起播配置
 */
model VideoPreviewQuickVideoInitialTsConfig {
  initialDuration?: double(name='initial_duration', format='double'),
  initialTsList?: [ integer ](name='initial_ts_list', items='{"format":"int64","type":"integer"}'),
}

/**
 * 转码文件下载限速配置
 */
model VideoPreviewRateLimitConfig {
  rateLimit?: int64(name='rate_limit', format='int64'),
}

/**
 * 
 */
model VideoPreviewResponse {
  audioChannels?: int64(name='audio_channels', description='audio_channels', example=2, format='int64'),
  audioFormat?: string(name='audio_format', description='audio_format', example='"AAC"'),
  audioMeta?: VideoPreviewAudioMeta(name='audio_meta'),
  audioMusicMeta?: VideoPreviewAudioMusicMeta(name='audio_music_meta'),
  audioSampleRate?: string(name='audio_sample_rate', description='audio_sample_rate', example='"44100"'),
  audioTemplateList?: [ VideoPreviewTranscode ](name='audio_template_list', description='audio_template_list', items='{"$ref":"#/definitions/VideoPreviewTranscode"}'),
  bitrate?: string(name='bitrate', description='bitrate', example='"39101896"'),
  duration?: string(name='duration', description='duration', example='"8053"'),
  frameRate?: string(name='frame_rate', description='frame_rate', example='"239.877"'),
  height?: int64(name='height', description='height', example=1280, format='int64'),
  spriteInfo?: VideoPreviewSpriteResponse(name='sprite_info'),
  templateList?: [ VideoPreviewTranscode ](name='template_list', description='template_list', items='{"$ref":"#/definitions/VideoPreviewTranscode"}'),
  thumbnail?: string(name='thumbnail', description='thumbnail', example='https://ccp.data.aliyuncs.com/hz22%2F5d5b986facbec311ef844c25954f96821497b383%2F5d5b986f955410dd991646bb87c6b4e899eff525?Expires=xxx&OSSAccessKeyId=xxx&Signature=xxx'),
  videoFormat?: string(name='video_format', description='video_format', example='"H264"'),
  width?: int64(name='width', description='width', example=720, format='int64'),
}

/**
 * 视频雪碧图配置
 */
model VideoPreviewSpriteConfig {
  autoScale?: VideoPreviewAutoScaleConfig(name='auto_scale'),
  col?: int64(name='col', format='int64'),
  frameHeight?: int64(name='frame_height', format='int64'),
  frameWidth?: int64(name='frame_width', format='int64'),
  interval?: VideoPreviewSpriteIntervalConfig(name='interval'),
  row?: int64(name='row', format='int64'),
}

/**
 * 雪碧图抓图间隔配置。如果配置异常，默认以1%抓图
 */
model VideoPreviewSpriteIntervalConfig {
  defaultInterval?: string(name='default_interval'),
  grabIntervalList?: [ string ](name='grab_interval_list', items='{"type":"string"}'),
  upperLimitList?: [ integer ](name='upper_limit_list', items='{"format":"int64","type":"integer"}'),
}

/**
 * 
 */
model VideoPreviewSpriteResponse {
  col?: int64(name='col', description='col', example=10, format='int64'),
  count?: int64(name='count', description='count', example=4, format='int64'),
  frameCount?: int64(name='frame_count', description='frame_count', example=333, format='int64'),
  frameHeight?: int64(name='frame_height', description='frame_height', example=90, format='int64'),
  frameWidth?: int64(name='frame_width', description='frame_width', example=160, format='int64'),
  row?: int64(name='row', description='row', example=10, format='int64'),
  status?: string(name='status', description='status', example='finished'),
}

/**
 * 目前只提供一定的参数化即可, 因为太参数化会让整个代码逻辑过于复杂, 容易留下 bug
通过 hotfix 升级后台任务实现定制策略优化
 */
model VideoPreviewTemplatePolicyAliyundriveConfig {
  preTranscodeBeginDuration?: int64(name='pre_transcode_begin_duration', format='int64'),
}

/**
 * 转码模板选择策略配置
 */
model VideoPreviewTemplatePolicyConfig {
  aliyundriveConfig?: VideoPreviewTemplatePolicyAliyundriveConfig(name='aliyundrive_config'),
  policy?: string(name='policy'),
}

/**
 * 截图配置
 */
model VideoPreviewThumbnailConfig {
  skipBeginPercent?: string(name='skip_begin_percent'),
  skipBeginSec?: double(name='skip_begin_sec', format='double'),
}

/**
 * 
 */
model VideoPreviewTranscode {
  status?: string(name='status', description='status', example='finished'),
  templateId?: string(name='template_id', description='template_id', example='"Original"'),
}

/**
 * 视频转码参数
 */
model VideoPreviewVideo {
  height?: int64(name='height', format='int64'),
  keepOriginal?: boolean(name='keep_original'),
  videoBitrate?: int64(name='video_bitrate', format='int64'),
  videoCodec?: string(name='video_codec'),
  videoFrameRate?: int64(name='video_frame_rate', format='int64'),
  width?: int64(name='width', format='int64'),
}

/**
 * 视频转码配置
 */
model VideoPreviewVideoConfig {
  defaultOutputExt?: string(name='default_output_ext'),
  fixResolution?: boolean(name='fix_resolution'),
  keepOriginal?: boolean(name='keep_original'),
  m3u8Config?: VideoPreviewM3U8Config(name='m3u8_config'),
  protectionSystem?: string(name='protection_system'),
  supportExt?: [ string ](name='support_ext', items='{"type":"string"}'),
  template?: [ VideoPreviewVideoTemplate ](name='template', items='{"$ref":"#/definitions/VideoPreviewVideoTemplate"}'),
}

/**
 * 转码源过滤配置（TODO: 未完整测试）
同时满足以下所有null条件，则不触发转码。如果没有配置任何条件，那么不触发过滤
 */
model VideoPreviewVideoFilterConfig {
  audioBitrate?: int64(name='audio_bitrate', format='int64'),
  audioChannel?: int64(name='audio_channel', format='int64'),
  audioCodecList?: [ string ](name='audio_codec_list', description='音频信息过滤', items='{"type":"string"}'),
  audioSampleRate?: int64(name='audio_sample_rate', format='int64'),
  bitrate?: int64(name='bitrate', format='int64'),
  duration?: int64(name='duration', description='综合信息过滤', format='int64'),
  height?: int64(name='height', format='int64'),
  pixel?: int64(name='pixel', format='int64'),
  size?: int64(name='size', format='int64'),
  videoBitrate?: int64(name='video_bitrate', format='int64'),
  videoCodecList?: [ string ](name='video_codec_list', description='视频信息过滤', items='{"type":"string"}'),
  videoFrameRate?: int64(name='video_frame_rate', format='int64'),
  width?: int64(name='width', format='int64'),
}

/**
 * 视频转码模板
 */
model VideoPreviewVideoTemplate {
  audioBitrate?: int64(name='audio_bitrate', format='int64'),
  audioChannel?: int64(name='audio_channel', format='int64'),
  audioCodec?: string(name='audio_codec'),
  audioSampleRate?: int64(name='audio_sample_rate', format='int64'),
  height?: int64(name='height', format='int64'),
  keepOriginal?: boolean(name='keep_original'),
  videoBitrate?: int64(name='video_bitrate', format='int64'),
  videoCodec?: string(name='video_codec'),
  videoFrameRate?: int64(name='video_frame_rate', format='int64'),
  videoOutputExt?: string(name='video_output_ext'),
  videoTemplateId?: string(name='video_template_id'),
  width?: int64(name='width', format='int64'),
}

/**
 * 
 */
model ViewFileBaseRequest {
  category: string(name='category', description='category', example='"album"'),
  driveId?: string(name='drive_id'),
  userId?: string(name='user_id', description='user_id', example='"abc"'),
  viewId: string(name='view_id', description='view_id', example='123'),
}

/**
 * WatermarkEnableConfig 功能开关及显示配置
 */
model WatermarkEnableConfig {
  displayAccessUserName?: boolean(name='display_access_user_name'),
  displayCustomText?: string(name='display_custom_text'),
  displayShareLinkCreatorName?: boolean(name='display_shareLink_creator_name'),
  enableDocPreview?: boolean(name='enable_doc_preview'),
  enableOnPreview?: boolean(name='enable_on_preview'),
}

/**
 * WatermarkTextConfig 文字水印配置
 */
model WatermarkTextConfig {
  bold?: boolean(name='bold'),
  fillStyle?: string(name='fill_style'),
  font?: string(name='font'),
  horizontal?: int64(name='horizontal', format='int64'),
  rotate?: int64(name='rotate', format='int64'),
  size?: int64(name='size', format='int64'),
  vertical?: int64(name='vertical', format='int64'),
}

/**
 * 
 */
model WeChatSyncConfig {
  cron?: string(name='cron'),
  enabled?: boolean(name='enabled'),
  tagId?: string(name='tag_id'),
}

/**
 * 
 */
model WhitePercentConfig {
  percent?: int64(name='percent', format='int64'),
  total?: int64(name='total', format='int64'),
}

/**
 * 
 */
model WhitelistConfig {
  driveWhitelist?: [ string ](name='drive_whitelist', items='{"type":"string"}'),
  enabled?: boolean(name='enabled'),
  whitelist?: [ string ](name='whitelist', items='{"type":"string"}'),
}

/**
 * 
 */
model WxTrustedDomainConfig {
  content?: string(name='content'),
  name?: string(name='name'),
  show?: boolean(name='show'),
}

function getPathname(nickname: string, path: string): string {
  if (Util.empty(nickname)) {
    return path;
  }
  return `/${nickname}${path}`;
}

function setUserAgent(userAgent: string): void {
  @userAgent = userAgent;
}

function appendUserAgent(userAgent: string): void {
  @userAgent = `${@userAgent} ${userAgent}`;
}

function getUserAgent(): string {
  var userAgent =  Util.getUserAgent(@userAgent);
  return userAgent;
}

async function getAccessKeyId(): string{
  if (Util.isUnset(@credential)) {
    return '';
  }
  var accessKeyId = @credential.getAccessKeyId();
  return accessKeyId;
}

async function getAccessKeySecret(): string{
  if (Util.isUnset(@credential)) {
    return '';
  }
  var secret = @credential.getAccessKeySecret();
  return secret;
}

async function getSecurityToken(): string{
  if (Util.isUnset(@credential)) {
    return '';
  }
  var token = @credential.getSecurityToken();
  return token;
}

